我在做iOS應用程序中,我有一個Event
類和Participant
類。強大的屬性,並保留週期
Event
類作爲NSArray *participants
屬性具有strong
屬性。 的Participant
類需要有一個屬性指的事件參與者是英寸
我問自己,如果一個事實,即參與者陣列作爲strong
屬性意味着,在這個NSArray中的每個參與者也作爲一個強大的屬性?因此,Participant
類的事件屬性是否需要具有weak
屬性以避免保留週期?
感謝您的幫助
我在做iOS應用程序中,我有一個Event
類和Participant
類。強大的屬性,並保留週期
Event
類作爲NSArray *participants
屬性具有strong
屬性。 的Participant
類需要有一個屬性指的事件參與者是英寸
我問自己,如果一個事實,即參與者陣列作爲strong
屬性意味着,在這個NSArray中的每個參與者也作爲一個強大的屬性?因此,Participant
類的事件屬性是否需要具有weak
屬性以避免保留週期?
感謝您的幫助
你是正確的Participant
類應該有一個弱引用其Event
如果您Event
類具有很強的參考其Participant
的。但是,您錯誤地認爲您的NSArray
的強屬性意味着該陣列對每個Participant
都有強烈的參考。 NSArray將始終保持對其所持物品的強烈參考。這是Event
類對其強陣列的引用。
是的,反比關係(參加者 - >事件)應該是weak
,由於參與者不能沒有的情況下存在,這會導致沒有問題。這意味着如果您刪除了該事件,參與者也將自動解除分配。
如果您聲明NSArray
strong
,您將保留參考號碼。 NSArray
是本身保留對象。
而且YES,避免retain cycle
如果object A retains B
,B
應該只是有一個weak
reference to A
。但要小心該陣列中對象的管理。
最後,我無法弄清楚你的結構,但participants
陣列是對象Participant
?
考慮使用Delegation
模式或KVO
的可能性。
哦,我看到了,謝謝你的回答 – Abel
請注意,將參與者數組的引用更改爲弱將不會阻止保留週期。 – CrimsonChris
是的,我看到,我不知道NSArray總是作爲它的對象的強有力的參考。謝謝 ! – Abel