IOS中級篇——何時使用copy,strong,weak,assign關鍵字 定義屬性,iosassign
父類指標可以指向子類對象 //定義block別名。typedef void (^LYItemOption)();
@interface LYItemArrow : LYItem
@property(nonatomic,strong) Class desController;@property(nonatomic,copy) LYItemOption option; 1.strong :除NSString\block以外的OC對象 @property(nonatomic,strong) NSArray *<#model#>;2.weak:各種UI控制項(但不是絕對,也有控制項要使用strong屬性的) @property (nonatomic,weak) UIButton *button;3.assign:CGFloat,NSInteger等基礎資料型別 (Elementary Data Type)、枚舉、結構體(非OC對象) @property(nonatomic,assign) CGFloat <#model#>;4.copy: copy : 建立的是不可變副本(如NSString、NSArray、NSDictionary) mutableCopy :建立的是可變副本(如NSMutableString、NSMutableArray、NSMutableDictionary) @property(nonatomic,copy)NSString *<#model#>;•@property記憶體管理原則的選擇•1.非ARC• 1> copy : 只用於NSString\block• 2> retain : 除NSString\block以外的OC對象• 3> assign : 基礎資料型別 (Elementary Data Type)、枚舉、結構體(非OC對象),當2個對象相互引用,一端用retain,一端用assign•2.ARC• 1> copy : 只用於NSString\block• 2> strong : 除NSString\block以外的OC對象• 3> weak : 當2個對象相互引用,一端用strong,一端用weak• 4> assgin : 基礎資料型別 (Elementary Data Type)、枚舉、結構體(非OC對象)