天天看點

iOS--合理定義對象的引用類型strong/weak/assign/copy

在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;