Ale*_*ray 7 variables syntax class objective-c automatic-ref-counting
我无法弄清楚我所看到的被称为 Objective-C "类继续"的东西.这是/这些......
@implementation(.m)文件中声明?那说......
@property吗?为什么这比设置@interface文件/声明更适合设置ivars或属性?问题在Objective-C中,在头文件中定义某些东西(比如属性)而不是.m文件有什么区别? 讨论涉及这个问题,但有点只是进一步解决问题 - 或者至少未能提供该术语的规范参考/定义......因此这个问题.
一个补习班就是苹果称之为一个类扩展.我看到clang称他们为"继续课",gcc使用"课程延续".
在clang或gcc中编译它:
@interface Foo : NSObject
@property int a;
@end
@interface Foo()
@property float a;
@end
Run Code Online (Sandbox Code Playgroud)
......你会得到有趣名字的错误.
要回答你的其余问题:
- 这样的事情的范围,生命周期和使用情况是什么?
扩展用于声明类的私有接口.您还可以使用它来重新声明(细化)公共属性声明.
- 这是ARC特有的"功能"吗?
没有.
- 是否有特定的运行时或其他使用要求?
类扩展是编译时的概念,不需要特殊的运行时.当然,他们确实需要一个支持它们的编译器(clang和gcc在当前版本中都有).
- 这也是创建@property的合适位置吗?为什么这个设置ivars或属性的地方比@interface文件/声明更好?
是.因为您可能想拥有私有属性.
- 为什么人们通过使用这样的特定术语使讨论复杂化 - 这似乎不存在于任何官方文档中(我能找到)?
嗯,你知道......如果整个世界都说英语,我也会更喜欢,但是目前我很高兴我必须在学校里学习它.
| 归档时间: |
|
| 查看次数: |
2563 次 |
| 最近记录: |