Objective-C 属性

发布于 2024-11-06 03:26:19 字数 172 浏览 0 评论 0原文

我只是想知道,当从类内访问属性时,我是否必须执行 [self someProperty]self.someProperty ?或者将其简单地称为 someProperty 是否安全?

编辑:鉴于该属性的名称不冲突/影子......

I was just wondering, when accessing properties from within the class, do I have to do [self someProperty] or self.someProperty? Or is it safe to refer to it simply as someProperty?

EDIT: Given that the name of the property doesn't conflict/shawdow....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

安稳善良 2024-11-13 03:26:19

两者都可以。 .someProperty 表示法可以说更安全一些,因为如果您在那里输入错误,编译器会抛出错误;相比之下,输入错误的 [self someProperty] 只会生成警告。

Either will work. The .someProperty notation is arguably a little safer, as the compiler will throw an error if you make a typo there; by contrast, a mistyped [self someProperty] will only generate a warning.

红墙和绿瓦 2024-11-13 03:26:19

在读取值时仅使用 someProperty 引用实例变量是可以的,但在设置值时,如果不使用 [self setSomeProperty:] 或 self.someProperty =,则不会发送键值观​​察消息。因此,如果任何其他对象正在观察此属性,它们将无法正确更新。

有时,这可以通过直接设置实例变量来实现,但通常您希望观察能够工作。

It's fine to refer to the instance variable using just someProperty when reading the value, but when setting the value, if you aren't using [self setSomeProperty:] or self.someProperty =, then there will by no key-value observing messages sent. So if any other object is observing this property, they won't be updated correctly.

This can, occasionally, be what you want by setting the instance variable directly, but usually you want observing to work.

兔姬 2024-11-13 03:26:19

[self someProperty] 还是 self.someProperty?或者将其简单地称为 someProperty 是否安全?

任何一个都可以。但我不喜欢在类范围内使用 self 。

someValue = 10 ;
[ self someValue ] = 20 ;
self.someValue = 30 ;

以上三个语句都是修改接口变量someValue

[self someProperty] or self.someProperty? or can is it safe to refer to it simply as someProperty?

Any one is fine. But I prefer not to use self when being in scope of class.

someValue = 10 ;
[ self someValue ] = 20 ;
self.someValue = 30 ;

All the above three statements are going the modify the interface variable someValue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文