首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果默认的是@protected,那么为什么这个ivar需要@protected?

如果默认的是@protected,那么为什么这个ivar需要@protected?
EN

Stack Overflow用户
提问于 2013-06-19 02:55:54
回答 2查看 3K关注 0票数 4
代码语言:javascript
复制
@interface AClass : SomeType {
@protected
    NSMutableArray* amINotAlreadyProtected; //?
}

如果@protected是默认的,为什么这段代码需要@protected?这段代码是由一位非常有经验的程序员编写的,但我自己会省略说明符。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-19 02:58:45

不需要关键字@protected,因为它是默认行为。

然而,一些程序员倾向于无论如何使用它,以防后来有经验较少的程序员出现而不知道这一点。还可以提到,它提高了代码的可读性,以防存在一些受保护的变量和其他私有或公共变量。

票数 5
EN

Stack Overflow用户

发布于 2013-06-19 04:48:24

它来自一个时代,你可能会看到:

代码语言:javascript
复制
@interface Foo:Bar
{
     @private
     … ivars …
     @protected
     … ivars …
}
…
@end

也就是说,虽然@protected是默认的,但如果您已经切换到其他变体之一并想要切换回来,则需要使用它。而且,是的,有一些原因(通常是不好的)来确保从一个版本到另一个版本的ivar声明顺序被保留。

除此之外,在默认情况下包含一个关键字可以确保书生气十足的灰胡子(就像我一样)可以在声明中确切地表达出来。

然而,像@property这样的现代添加意味着这种恶作剧不再是必要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17176702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档