[英]Objective-C Delegates with ARC
我正在編寫一個對委托對象進行回調的類,但是我遇到了ARC的問題。
例如,我有ObjectA(委托),它符合ProtocolA,而ObjectB是回調委托的對象。 我在ObjectB中將ObjectA存儲為@property。
在這種情況下,哪些變量應該很強,哪些應該是弱引用? 我需要避免將“自我”從ObjectA傳遞到ObjectB以設置委托導致從強指針到弱指針的轉換的情況。
要避免循環引用,請將ObjectB的委托保存為弱引用。 因為ObjectA“擁有”ObjectB,所以不應該釋放ObjectA,而ObjectB具有對它的引用。 所以寫:
@property (weak, nonatomic) id <ObjectBDelegate> delegate;
代表屬性通常應該很弱。 將消息傳遞給委托的對象不“擁有”委托,事實上它通常是另一種方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.