在ios中一定要合理使用對象的引用類型:
最佳原則:在ios中任何一個對象隻有一個強引用
使用weak的情況:
1、懶加載的方式需要使用weak修飾:
如@property(nonatmic,weak) IBOutlet UILabel *lbl;
備注:所謂的懶加載就是指控件通過IB拖到根視圖中,再通過連線的方式與ViewController中的屬性對應起來。此種方式就相當于self.view執行了addSubview()方法,即self.view對該控件做了強引用,那麼在viewController中隻需要做弱引用即可。
使用strong的情況:
1、非懶加載(需要通過代碼來alloc+init)
eg.未将控件拖到IB中,在h檔案中聲明了控件,在m檔案中初始化了這個控件對象。此種情況需要在聲明的時候,使用強引用。即:@property(nonatmic,strong) IBOutlet UILabel *lbl; 對應的後面應用有其初始化方法:lbl = [[UILabel alloc] init];
使用assign的情況:
1、對int、double、float、BOOL 等數值型對象的定義。
[email protected](nonatomic,assign) BOOL tf;
使用copy的情況:
1、對于NSString類型的對象定義:
[email protected](nonatomic,copy) NSString *strName;