返回相关视图的值时弱或强属性声明?

时间:2014-02-26 16:26:02

标签: objective-c macos memory-management properties strong-references

我读了一个Stack Overflow答案,它将对象上的strong属性与狗上的皮带进行了比较。对于每个使用强力参考的声明,都会为狗添加新的皮带。一旦每个遛狗的人回家(或者每个具有强引用的对象解除分配),就可以释放狗(分配的记忆)。我认为这是怎么回事。如果我完全屠杀那个,我向原始海报道歉。无论如何,这是我的情况。我有一个NSDocument子类,它有一个名为backgroundColor的属性。这是我的NSDocument子类正在执行accessor- / mutator-wise:

- (NSColor *)backgroundColor
{
    return self.window.backgroundColor;
}

- (void)setBackgroundColor:(NSColor *)color
{
    self.window.backgroundColor = color;
}

所以,我的文档对象实际上并不拥有“皮带”,但与此同时,对于那只狗继续行走很重要,或者文档没有背景颜色。现在我想我只是把自己与这个比喻混为一谈。在一天结束时,我只想知道是否将“转发”属性声明为strongweak

谢谢!

2 个答案:

答案 0 :(得分:3)

不要将其声明为财产。提供getter和setter实现就足够了。一个属性在这里没有帮助,因为没有值存储。

答案 1 :(得分:2)

由于您拥有自己的setter和getter而且未使用ivar属性,strongweak没有任何重要性。永远不会阅读或指定ivar。

我可能会使用strong,因为[UIWindow backgroundColor]strong,但weak的工作方式完全相同。