最近需要把iOS实现好的功能用android做出来,所以就是copy oc paste java了。理解的肯定不对,跟我一起入坑吧。
这篇文章讲的很清楚,为了更快速的复习,总结如下:
ios的文件分为:.h和.m
.h就是头文件,.m是实现类,我简单的理解是.h中是父类用来定义一堆东西,.m是实现类,做具体的实现。
.h中的方法和变量都是public
.m中的是private
声明变量和方法
@property (nonatomic, copy) NSString *host;// String host //@property 的意思是自带geter/setter
NSMutableArray *accountList;//可变数组 类似于集合
+ (instancetype)shareInstance{ //一般用作单例 +标识static 如果是 - 代表一般方法
xxxobject = [[xxxobject alloc] init];//new object(); 后边的init方法类似构造方法做初始化
return xxxobject }
- (instancetype)init
{
.......初始化......
}
-(void) HelloWorld:(BOOL)ishelloworld{
//干点啥
}
就是
public void helloWorld(bool ishelloworld) {
//干点啥
}
ClassA:ParentA // ClassA extends ParentA
ClassA:ParentA<Protocol> //ClassA extends ParentA implements interface
ClassA <Protocol> //ClassA implements interface
//调用方法 []代表调用方法 如
[self.object method:self.id account:account];
就是
this.object.method(this.id,account);// : 前边的account是参数名 无意义
if(object){} //if(object!=null){}
[self.xxxattr method:self.xxxID Succ:^(NSString *aaaID) {
}]; //第二个参数相当于java中的监听 C语言也有这个东西
接下来是回调了
instance.callbackSet(new CallBack(){
@Override
public void onLoginSuccess(int uid, int fd) {
super.onLoginSuccess(uid, fd);
manager.onLoginSuccess(uid);
}
});
inst类中有回调onLoginSuccess,实现方法就是右边的代码块
inst.onLoginSuccess = ^(uint32_t uid, int fd){//^代表是block 就是代码块的意思
if ([manager respondsToSelector:@selector(onLoginSuccess:)]) {
[manager onLoginSuccess:uid];
}
//还有这种把方法当参数传递的,对应java中的监听。在一个类中调用,另一个类实现,感觉比java好用呀
[self.object channelJoin:self.ID Succ:^(NSString *ID) {}] //succ在另外一个类实现,id是参数
//另外一个类是这样:
- (void)method:(NSString *)ID Succ:(onChannelDidJoined)succ//参数
{
[inst channelJoin:channelID];
inst.onChannelJoined = ^(NSString* name){
succ(name);//调用 在另外一个类实现
};
}
有时候会见到id 类型 这是一个泛型 可以理解为object\
_xxx 这里的 下划线 可以理解为this.