-----<a target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
OC加强学习(三)
1. 定义block变量别名:
typedef (void)(^newType)(int ,int) ;
2. block访问外部变量
1)当定义block的时候,block会把外部变量以const的方式复制一份存放到block所在的内存中,且不允许修改外部变量的值
2)__block定义局部变量时,可以修改变量的值,修改的是复制到堆区中的变量的值。定义block之后,以后用到该变量时,都是堆中的变量。
3.协议:protocol
协议:一些方法的声明,一般写到一个.h文件中
1)定义协议:@protocol 协议名<NSObject>
@end
2)类遵守协议的格式:
@interface 类名:父类名<协议,协议>
@end
protocol使用注意事项:
1)遵守了协议相当于该类有了方法的声明;
2)一个协议也能遵守其他协议,一个类可以遵守多个协议
3)只要父类遵守了某个协议,那么子类也能遵守,可以实现协议的方法相当于重写父类方法;
4)protocol 声明的方法可以让任何类去实现;
5)<NSObject> 基协议
4.类型限制:
id 类型/类<协议>,关联关系中的类型限制 @property(nounautomic,strong) *Dog<协议> dog;
|
|