Ava*_*his 11 iphone objective-c
我正在尝试理解Objective-C属性,并且我对它们的语法有一些挥之不去的问题.
明确为这样的属性声明一个ivar有什么区别:
@interface myObject1 : NSObject {
NSString *title;
}
@property (copy) NSString *title;
@end
Run Code Online (Sandbox Code Playgroud)
还有这个:
@interface myObject2 : NSObject {
}
@property (copy) NSString *title;
@end
Run Code Online (Sandbox Code Playgroud)
myObject2示例似乎有效.是否可以在myObject2中实现属性,或者是否应始终明确定义关联的ivar?
没有明确宣布伊娃的影响是什么?
Lou*_*arg 13
在现代Objective C运行时(nonfragile-abi)它们是相同的,ivar支持将由@synthesize声明自动创建.这是iPhone和64位Mac OS X应用程序使用的运行时.32位Mac OS X使用遗留运行时,无法合成ivar,而您编写的第二位代码将无法正确编译.
最新版本的iPhone模拟器使用现代运行时,但较旧的版本不使用.因此,虽然两个代码示例都适用于实际的iPhone(合成必要的存储),但第二个示例将无法为模拟器编译,除非您拥有最新的Xcode.
| 归档时间: |
|
| 查看次数: |
627 次 |
| 最近记录: |