延长保留财产

时间:2011-02-05 16:50:08

标签: iphone objective-c

我有一个retain属性,它是子视图控制器的NSArray。我想修改此属性的setter,以便在设置视图控制器时,我在视图控制器上设置一个包含对self的引用的属性。 以同样的方式将视图控制器添加到选项卡栏控制器时,将设置视图控制器tabBarController属性。

我应该创建一个自定义setter(而不是合成的setter),或者我应该使用键值观察我想我已经听说过了。

1 个答案:

答案 0 :(得分:3)

虽然你可以这样做,但我个人的意见是使用自定义的setter - 只是因为它会让第三方更清楚地知道代码中正在做什么。使用自己的setter可能比设置键值观察器和在属性更改时触发方法更具可读性。

此外,从计算角度来看,使用KVO比定制设定器更昂贵。您的申请中的影响可以忽略不计,但值得考虑。