ios 基礎問題記錄

想想還是算了發表於2018-07-24

1.對於block,理解,mrc和arc下有什麼區別,使用注意事項

區別:

 block可以儲存在棧中,也可以在堆中
 預設儲存在棧中,不需要管理記憶體
 儲存在堆中的block會對block進行retain操作
(MRC)block在堆中時,不想對block進行retain操作,前面加__block
(ARC)前面加__weak或__unsafe_unretained
__weak和__unsafe_unretained的區別:__weak則在釋放時會對物件賦值nil,後者不會
Block_copy使棧中的block轉移到堆中,並對block會引用的物件進行retain操作
避免block引用的物件進行retain操作,在引用物件宣告時前面加__block

注意事項:
防止迴圈引用複製程式碼

相關文章