0

私が取り組んでいるプロジェクトで何か助けを得ることを望んでいました。私は現在、このコードhttps://github.com/djwait/CoreBluetoothExampleをObjective-cでOpenframeworks ios Objective C++に書き直そうとしています。しかし、私はObjective-cの完全な初心者であり、どのように進行するかについて失われた気分です。目的は変数uint16_t heartRate(元のアプリケーションから)にアクセスしてC++コードで使用することです。何よりも、元のコードがどのようにACViewControllerオブジェクトを作成しているのか、そのメンバ関数がどのように呼び出されているのか混乱しています。 私の現在の方法は、オリジナルのACViewController .hを新しいプロジェクトにコピーすることでした。次に、私のofApp.hにACViewController.hをインポートし、クラスを作成します。 ACViewController * acv;Objective CからObjective C++にcorebluetoothを移植する方法

セットアップでは、次のようになります。acv = [[ACViewController alloc] init]; しかし、[acv renderHeartRateMeasurement]のような関数を呼び出そうとするたびに;私は インスタンスメソッド '-renderHeartRateMeasurement'が見つかりません(戻り値のタイプは 'id'にデフォルト設定されています)

何か助けていただければ幸いです!

ベスト、 グスタフ

答えて

0

私が正しくあなたを理解する場合は、C++からObjective-Cのメソッドを呼び出すことができるようにしたいです。

@interface MyClass : NSObject 
-(instancetype)initWithA:(int)a andB:(int)b; 
@end 

非常に単純なクラスを、2つのintを取るinitで:

は、次のようにあなたがMyClass.hで定義されたObjective-Cのクラスを持っていると仮定しましょう。あなたはMyCppClass.hppで次の操作を行うと、C++からアクセスするには

#include <objc/objc-runtime.h> 
#ifdef __OBJC__ 
#define OBJC_CLASS(name) @class name // if imported in ObjC it knows it is a class 
#else 
#define OBJC_CLASS(name) typedef struct objc_object name // C++ will treat it as a struct, which is what an ObjC class is internally 
#endif 

OBJC_CLASS(MyClass); 

namespace MyWrapper { 
class MyCppClass { 
    MyClass* myObj; 
public: 
    MyCppClass(int a, int b); 
    ~MyCppClass(); 
}; 
} 

あなたのC++コードはにObjCクラス/メソッドを呼び出します場合、にObjCランタイムが利用可能でなければなりません。マクロは、C++コードでObjCクラスの前方宣言を可能にします。コンパイルして実行するだけです。 C++は文句を言わないでしょう。 C++ファイルにMyCppClass.hppをインクルードし、C++クラスのように使用してください。

今、最後のステップは、次のように客観的なC++ファイルが定義されている、あなたのMyCppClass.mmである:

#include "MyCppClass.hpp" 
#import "MyClass.h" // this is your ObjC class, imported here because you can't import it in C++ header 

namespace MyWrapper { 
MyCppClass::MyCppClass(int a, int b) : 
myObj([[MyClass alloc] initWithA:a andB:b]) { } 

MyCppClass::~ MyCppClass() { 
    [myObj release]; 
} 

MyCppClass.mmは-fno-でコンパイルしてコンパイルする必要が最後の注意、 objc-arcフラグ

関連する問題