[英]How to use Objective-C in C++ header?
我试图在Ah文件中执行以下操作:
#include "Bar.hpp"
#import <Foundation/Foundation.h>
namespace foo
{
struct A : Bar::B
{
public:
A() : Bar::B() {}
id delegate;
virtual void OnEvent(...);
};
}
但是我得到了很多错误,比如'我不知道NSString是什么'。 我该怎么做?
你将它包含在.cpp
文件中? 将其重命名为.mm
(这是Objective-C ++的正确文件扩展名)。
如果你想在你的“常规”C ++类中使用一个Objective C类(而不是Objective C ++),你可以使用本文中描述的技巧 ,其归结为包括<objc/objc-runtime.h>
而不是<Foundation/Foundation.h>
,并使用包装的struct objc_object
代替“真正的”Objective C对象。
#ifdef __OBJC__
@class ABCWidget;
#else
typedef struct objc_object ABCWidget;
#endif
namespace abc
{
class Widget
{
ABCWidget* wrapped;
public:
Widget();
~Widget();
void Reticulate();
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.