Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 基于Cocoa Touch的匿名类别中允许使用IVAR,但不在“中”;正规的;热可可_Cocoa Touch_Cocoa_Objective C 2.0 - Fatal编程技术网

Cocoa touch 基于Cocoa Touch的匿名类别中允许使用IVAR,但不在“中”;正规的;热可可

Cocoa touch 基于Cocoa Touch的匿名类别中允许使用IVAR,但不在“中”;正规的;热可可,cocoa-touch,cocoa,objective-c-2.0,Cocoa Touch,Cocoa,Objective C 2.0,在iOS和常规OS X开发之间切换时,我注意到两件事: //SomeClass.h @interface SomeClass: SomeUIClass @property (retain)SomeProperty* someProperty; @end //SomeClass.m @interface SomeClass () { SomePrivateVar* somePrivateVar; } @end @implementation SomeClass @synt

在iOS和常规OS X开发之间切换时,我注意到两件事:

//SomeClass.h
@interface SomeClass: SomeUIClass

    @property (retain)SomeProperty* someProperty;

@end

//SomeClass.m
@interface SomeClass ()
{
    SomePrivateVar* somePrivateVar;
}
@end

@implementation SomeClass

@synthesize someProperty;
@end
以上内容在iOS下可以正常编译。即:

  • 我可以在不显式声明ivar的情况下合成属性 在public@界面中
  • 我可以在下的.m文件中进一步声明其他私有IVAR 匿名类别(类扩展)
  • 但是,如果编译OSX并将某些基于NS的类子类化为基于UI的类(例如,NSView而不是UIView),上述两种情况都会导致编译器错误


    我想我想是客观的C2。通常允许上述操作,但它们只是iOS中的“快捷方式”?或者在iOS中允许而在OS X中不允许它们有什么关系?

    这些功能只能用于Mac OS X上的64位应用程序。您可能正在构建一个通用二进制文件,其中还包括一个32位版本。

    哦。。。。啊哈。是的,实际上我正在构建universal 32/64,事实上,无论如何都必须在32中编译,因为某些原因auval(音频单元验证工具——我正在构建一个音频单元插件)甚至看不到构建的组件,如果它是在64位下构建的。