属性
1.声明属性,会自动生成变量,get方法和set方法,如:
@property NSString *name;
属性的特性
1.多线程特性,nonatomic和atomic,一般都使用nonatomic
2.读写特性,readwrite和readonly,默认是readwrite
3.内存管理特性,strong,weak,copy,unsafe_unretained,当某个属性是指向其他对象的指针,并且该对象有可修改的子类(如NSString或NSArray)时,用copy。
类扩展
1.不是所有属性和方法都要向其他类公开,只会在类内部使用的属性和方法应当声明在类扩展中。
2.类扩展以@interface开头,后跟类名,接着为一对空括号,然后声明属性和方法,最后以@end结束。
3.通常将类扩展写在顶部,@implementation之前。
@interface WFYCell ()
@property (strong, nonatomic) UIColor *color;
@end
#Pragma mark
使用#Pragma mark对文件中的方法进行组织,#Pragma mark本身并不会对代码有任何影响
添加分割线:#Pragma mark -
添加说明:#Pragma mark 说明
添加分割线和说明:#Pragma mark - 说明
语法糖
block
block类型:int(^)(int,int)
block变量:block
block值:^(int x, int y) {
return x + y;
};
block定义和使用:
int(^foo) (int,int) = ^(int x, int y) {
return x + y;
};
NSLog(@"********%d", foo(3,5));
初始化方法
1.子类的初始化方法,一般先实现子类初始化方法(其中调用父类指定初始化方法)。
2.覆盖init方法,使其调用刚写的子类初始化方法