首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声明iVar属性

声明iVar属性
EN

Stack Overflow用户
提问于 2012-12-05 20:23:57
回答 3查看 147关注 0票数 0

我刚刚继承了一个iOS项目,并且对ivars和属性的分配方式有一个疑问。

在这个项目中,ivar的命名类似于属性,但以下划线开头。然后,当属性被综合时,它是这样做的

代码语言:javascript
复制
@synthesize property = _ivar;

我觉得这有点奇怪。我之前只做过一个iOS项目,但是当我在做的时候,ivar和property的名字是一样的。然后我简单地合成这个属性,所有的东西都很棒。

我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-05 20:29:41

在开发人员应该引用self.property的时候,使用_var表单来防止意外引用变量已经成为一种惯例。现在已经确定,使用最新的工具,您可以完全删除@synthesize行,并自动模拟@synthesize x = _x;

票数 1
EN

Stack Overflow用户

发布于 2012-12-05 20:33:08

这种做法强制您使用属性调用和设置iVars。如果你想使用iVar,你可以通过_iVar调用它,否则就不可能直接调用iVar,而不会错误地使用属性。它会显示错误,并且会提醒你,哦,我需要把self。

票数 0
EN

Stack Overflow用户

发布于 2012-12-05 21:26:49

在最新版本的XCode中,你不需要合成,它会为你合成。但还是要加下划线。

但是,您可以通过将其声明为@synthesize property=property;@synthesize property;来覆盖它,甚至您也会意识到,您可以为它指定任何其他名称@synthesize property=myproperty;

然而,最初它只是一个风格问题,就像使用变量名称和动作名称一样,例如numberArray,nameTextField,cancelButton,但现在它很少使用,人们被要求分别命名数字,名称,取消。

但我建议大家遵循苹果的指导方针来使用_property。

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

https://stackoverflow.com/questions/13723202

复制
相关文章

相似问题

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