2011-08-30 75 views
44

如果我對Mike Ash的"Zeroing Weak References" writeup的解讀是正確的,那麼弱引用就像沒有ARC的assign引用。但是,如果引用的對象被釋放,而不是獲取「懸掛指針」(意思是指向釋放對象的指針),則指針將被設置爲nil歸零ARC中的弱引用

這是對的嗎?是否發生過任何屬性標記爲weakassign(當ARC處於活動狀態時)?

如果這是正確的,這將消除許多SIGABRT。

回答

38

這是大多數是正確的,但assign屬性仍然對待他們曾經是相同的,只有weak的人正在調零。另一個需要注意的是,調零弱引用僅適用於Mac OS X≥10.7和iOS≥5。ARC的其餘部分回溯到10.6和iOS 4時,在這些操作系統上根本無法使用弱引用。

+6

感謝@cobbal。至少在XCode 4.2 beta中,如果您的部署目標是

+1

謝謝@Yar,我得到了這個錯誤,不知道它來自哪裏! – Pascal

+1

關於後向兼容性的優點。 – jlehr