我有一个retain属性,它是子视图控制器的NSArray。我想修改此属性的setter,以便在设置视图控制器时,我在视图控制器上设置一个包含对self的引用的属性。
以同样的方式将视图控制器添加到选项卡栏控制器时,将设置视图控制器tabBarController
属性。
我应该创建一个自定义setter(而不是合成的setter),或者我应该使用键值观察我想我已经听说过了。
答案 0 :(得分:3)
虽然你可以这样做,但我个人的意见是使用自定义的setter - 只是因为它会让第三方更清楚地知道代码中正在做什么。使用自己的setter可能比设置键值观察器和在属性更改时触发方法更具可读性。
此外,从计算角度来看,使用KVO比定制设定器更昂贵。您的申请中的影响可以忽略不计,但值得考虑。