Ami*_*k12 14 c++ cocoa objective-c objective-c++
在我的项目中,核心库是C/C++文件的一部分,而UI需要在Objective C中开发,我能够从Objective C/.mm文件访问/调用C++函数,但到目前为止没有反转,即我不是能够从C++文件调用Objective C函数,当我试图包括Objective C头甚至系统头
#import <foundation/foundation.h>
Run Code Online (Sandbox Code Playgroud)
大约1000+编译错误,
这样的事情
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:180:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:180: error: expected unqualified-id before '@' token
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:182:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:182: error: expected initializer before '*' token
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183: error: 'NSString' was not declared in this scope
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183: error: 'aSelectorName' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
我错过了一些预编译标志等..任何人都可以建议我,最好的方式来调用/访问从NSObject继承的目标C类,而不需要修改很多C++代码,我只需要调用一个函数
代码结构/包含头文件的顺序是
Some system header file
Some Core Class Header file
#import <foundation/foundation.h>
Run Code Online (Sandbox Code Playgroud)
小智 47
如果您的.cpp文件包含需要使用Objective-C的C++代码,请将该.cpp文件重命名为.mm或传递-x objective-c++
给编译器.
归档时间: |
|
查看次数: |
31738 次 |
最近记录: |