簡體   English   中英

Objective-C ARC代表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM