[英]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.