簡體   English   中英

如何在C ++頭文件中使用Objective-C?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM