我读了一个Stack Overflow答案,它将对象上的strong
属性与狗上的皮带进行了比较。对于每个使用强力参考的声明,都会为狗添加新的皮带。一旦每个遛狗的人回家(或者每个具有强引用的对象解除分配),就可以释放狗(分配的记忆)。我认为这是怎么回事。如果我完全屠杀那个,我向原始海报道歉。无论如何,这是我的情况。我有一个NSDocument
子类,它有一个名为backgroundColor
的属性。这是我的NSDocument
子类正在执行accessor- / mutator-wise:
- (NSColor *)backgroundColor
{
return self.window.backgroundColor;
}
- (void)setBackgroundColor:(NSColor *)color
{
self.window.backgroundColor = color;
}
所以,我的文档对象实际上并不拥有“皮带”,但与此同时,对于那只狗继续行走很重要,或者文档没有背景颜色。现在我想我只是把自己与这个比喻混为一谈。在一天结束时,我只想知道是否将“转发”属性声明为strong
或weak
。
谢谢!
答案 0 :(得分:3)
不要将其声明为财产。提供getter和setter实现就足够了。一个属性在这里没有帮助,因为没有值存储。
答案 1 :(得分:2)
由于您拥有自己的setter和getter而且未使用ivar属性,strong
或weak
没有任何重要性。永远不会阅读或指定ivar。
我可能会使用strong
,因为[UIWindow backgroundColor]
为strong
,但weak
的工作方式完全相同。