首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该在实现中使用self关键字(Properties)吗?

我应该在实现中使用self关键字(Properties)吗?
EN

Stack Overflow用户
提问于 2009-06-26 22:24:49
回答 2查看 1K关注 0票数 11

我相信我在很大程度上理解了属性。我的问题是,如果我有一个实例变量的属性,并且我在实现文件的方法中设置或检索它,我应该使用self.myProperty还是只使用myProperty?我知道这两种方法都可以工作,但我见过混合的约定,有时代码直接访问变量,有时通过属性访问变量。

这样做有技术上的原因吗?这只是惯例/个人偏好吗?我不是指方法的参数名与实例变量名冲突的实例,这可能是使用该属性的一个原因(至少,在其他语言中,我不知道这一点)。我假设当一个人在实现中使用属性时,他们想要利用他们声明属性的方式(即非原子,保留),所以例如在一个方法中,可以这样做:

代码语言:javascript
复制
self.myProperty = [someObject someAutoReleasedObject];

而不是:

代码语言:javascript
复制
myProperty = [[someObject someAutoReleasedObject] retain];

这就是原因吗?那么,是否只有在某些情况下才适合使用该属性呢?

我是Objective-C的新手,这是为数不多的让我感到困惑的事情之一。到目前为止,我只是直接访问了实例变量,最有可能的错误假设是,遍历该属性实际上调用/发送了一个方法/消息,并增加了不必要的开销。我很确定我错了,但是即使开销上的差异可以忽略不计(如果有的话),为什么要选择在可以直接访问变量的情况下添加它呢?

我很确定我的想法是错的,这就是为什么我在这里问。

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

https://stackoverflow.com/questions/1051543

复制
相关文章

相似问题

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