@interface AClass : SomeType {
@protected
NSMutableArray* amINotAlreadyProtected; //?
}如果@protected是默认的,为什么这段代码需要@protected?这段代码是由一位非常有经验的程序员编写的,但我自己会省略说明符。
发布于 2013-06-19 02:58:45
不需要关键字@protected,因为它是默认行为。
然而,一些程序员倾向于无论如何使用它,以防后来有经验较少的程序员出现而不知道这一点。还可以提到,它提高了代码的可读性,以防存在一些受保护的变量和其他私有或公共变量。
发布于 2013-06-19 04:48:24
它来自一个时代,你可能会看到:
@interface Foo:Bar
{
@private
… ivars …
@protected
… ivars …
}
…
@end也就是说,虽然@protected是默认的,但如果您已经切换到其他变体之一并想要切换回来,则需要使用它。而且,是的,有一些原因(通常是不好的)来确保从一个版本到另一个版本的ivar声明顺序被保留。
除此之外,在默认情况下包含一个关键字可以确保书生气十足的灰胡子(就像我一样)可以在声明中确切地表达出来。
然而,像@property这样的现代添加意味着这种恶作剧不再是必要的。
https://stackoverflow.com/questions/17176702
复制相似问题