@interface AClass : SomeType {
@protected
NSMutableArray* amINotAlreadyProtected; //?
}
如果@protected
是默认代码,为什么此代码需要@protected
?这段代码是由一位非常有经验的程序员编写的,但我自己会省略说明符。
答案 0 :(得分:5)
关键字@protected
不需要,因为它是默认行为。
然而,一些程序员倾向于使用它,因为一个经验较少的程序员在以后出现并且不知道这一点。还可以提到的是,它增加了代码的可读性,因为有一些变量受到保护,而其他私有或公共变量。
答案 1 :(得分:2)
从你可能会看到的时代开始:
@interface Foo:Bar
{
@private
… ivars …
@protected
… ivars …
}
…
@end
也就是说,虽然@protected是默认值,但如果您已切换到其他变体之一并想要切换回来,则需要使用它。并且,是的,有理由(通常是坏的)确保ivar声明顺序从发布到发布保持不变。
除此之外,包括默认案例的关键字可确保迂腐的灰色胡须(如我自己)在其声明中可以完全明确。
然而,像@property
这样的现代补充意味着不再需要这样的诡计。