在 32-bit 时,如果类的 @interface 部分没有进行 ivar 声明,但有 @property 声明,在类的 @implementation 部分有响应的 @synthesize,则会得到类似下面的编译错误:
Synthesized property 'xX' must either be named the same as a compatible ivar or must explicitly name an ivar
在 64-bit时,运行时系统会自动给类添加 ivar,添加的 ivar 以一个下划线"_"做前缀。
上面声明部分的 @synthesize window=_window; 意思是说,window 属性为 _window 实例变量合成访问器方法。
有兴趣的可以仔细看这里: http://www.cocoabuilder.com/archive/cocoa/198573-property-problem.html
Synthesized property 'xX' must either be named the same as a compatible ivar or must explicitly name an ivar
在 64-bit时,运行时系统会自动给类添加 ivar,添加的 ivar 以一个下划线"_"做前缀。
上面声明部分的 @synthesize window=_window; 意思是说,window 属性为 _window 实例变量合成访问器方法。
有兴趣的可以仔细看这里: http://www.cocoabuilder.com/archive/cocoa/198573-property-problem.html
本文深入探讨了在32位与64位环境下,类的@interface部分未进行ivar声明而使用@property声明时,编译过程中遇到的Synthesizedproperty错误,并解释了64位运行时系统如何自动为类添加ivar的过程。通过实例分析,揭示了@synthesizewindow=_window;这一声明背后的含义。
134

被折叠的 条评论
为什么被折叠?



