我读到了一个堆栈溢出答案,它将对象上的strong属性与狗上的拉链进行比较。每一次声明都有强烈的引用,狗身上增加了一条新的皮带。一旦每一个遛狗的人回家(或每一个具有强烈引用释放的对象),狗(分配的内存)就可以被释放。我想事情就是这样进行的。如果我彻底杀了那张海报,我向原海报道歉。总之,这是我的情况。我有一个NSDocument子类,它有一个名为backgroundColor的属性。下面是我的NSDocument子类所做的访问器/突变体的操作:
- (NSColor *)backgroundColor
{
return self.window.backgroundColor;
}
- (void)setBackgroundColor:(NSColor *)color
{
self.window.backgroundColor = color;
}所以,我的文档对象并没有真正拥有“皮带”,但同时,这条狗继续走是很重要的,否则文件就不会有背景色。现在我想我只是把自己和这个比喻搞混了。最后,我只想知道是将“转发”属性声明为strong还是weak。
谢谢!
发布于 2014-02-26 16:46:47
不要宣布它为财产。提供getter和setter实现已经足够了。一个属性在这里帮不了你,因为这里没有价值可存储。
发布于 2014-02-26 17:09:44
由于您有自己的setter和getter,并且您不使用属性ivar,所以strong或weak没有任何重要意义。艾法尔从未被阅读或分配过。
我可能会使用strong,因为[UIWindow backgroundColor]是strong,但是weak的工作方式完全一样。
https://stackoverflow.com/questions/22047295
复制相似问题