我正在编写一个具有委托对象回调的类,但在进行 ARC 时遇到了问题。
例如,我有一个符合 ProtocolA 的 ObjectA(委托),以及一个调用委托的对象 ObjectB。我将 ObjectA 存储为 ObjectB 中的 @property。
在这种情况下,哪些变量应该是 strong 引用,哪些应该是 weak 引用?我需要避免从 ObjectA 将 'self' 传递给 ObjectB 来设置委托的情况,导致从 strong 指针转换为 weak 指针。
我正在编写一个具有委托对象回调的类,但在进行 ARC 时遇到了问题。
例如,我有一个符合 ProtocolA 的 ObjectA(委托),以及一个调用委托的对象 ObjectB。我将 ObjectA 存储为 ObjectB 中的 @property。
在这种情况下,哪些变量应该是 strong 引用,哪些应该是 weak 引用?我需要避免从 ObjectA 将 'self' 传递给 ObjectB 来设置委托的情况,导致从 strong 指针转换为 weak 指针。
@property (weak, nonatomic) id <ObjectBDelegate> delegate;
委托属性通常应该是弱引用。向委托发送消息的对象不“拥有”委托,事实上通常是相反的。