一、assgin和weak均表明該屬性定義了一種“非擁有關系”狂窑,即在為此種屬性設置新值時,既不保留新值桑腮,也不釋放舊值泉哈。
1 區(qū)別:
(1)weak在對象銷毀時,屬性值會置為nil破讨,而assign只會執(zhí)行對“純量類型”做簡單的賦值操作丛晦。
(2)assgin可以用于非OC對象,例如float提陶、bool烫沙、int等類型,而weak只可用于OC對象隙笆。
2 使用場景:
weak:
(1)在ARC中锌蓄,在有可能出現(xiàn)循環(huán)引用的時候,往往要通過讓其中一端使用weak來避免撑柔。例如:delegate代理屬性瘸爽。
(2)自身已經(jīng)對它進行一次強引用,沒有在強調(diào)引用一次铅忿,此時也會使用weak
(3)在對象銷毀時剪决,需要對對象置為nil時,用weak
assgin:用來修飾基本類型是用assgin檀训。