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



我读到了一个堆栈溢出答案,该答案将对象上的strong属性与狗的皮带进行了比较。对于每个带有强烈参考的声明,都会在狗身上添加一条新的皮带。一旦每个遛狗的人都回家(或者一旦每个具有强参考的物体解除分配),狗(分配的内存)就可以被释放。我想事情就是这样。如果我完全屠杀了原始海报,我向原始海报道歉。无论如何,这是我的情况。我有一个NSDocument子类,它有一个名为 backgroundColor 的属性。这是我的NSDocument子类正在做的访问器/突变器:

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

因此,我的文档对象实际上并不拥有"皮带",但与此同时,让那只狗继续行走很重要,否则文档将没有背景颜色。现在我想我只是把自己和这个比喻混淆了。归根结底,我只想知道是将"转发"的属性声明为strong还是weak

谢谢!

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

由于你有自己的二传手和getter,并且你不使用属性ivar,strongweak没有任何重要性。从不读取或分配 ivar。

我可能会选择strong因为[UIWindow backgroundColor] strongweak工作原理完全相同。

相关内容

  • 没有找到相关文章

最新更新