屬性
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方法,使其調用剛寫的子類初始化方法