objective-C++関数ポインタを標準のC++に渡したいので、C++でobjective-cメソッドを呼び出すことができます。ここでobjective-C++から標準C++に関数を渡す方法はありますか?
は私が達成したいものです。
//C++ side
class CppSide
{
public:
void(*TestFunction)();
};
//objective-c++ side
@interface InteropController : GLKViewController{
}
-(void) PickFile; //I want to pass PickFile address to TestFunction
@end
後は私がやったことですが、
InteropController* controller = [[InteropController alloc] init];
CppSide* cppSide = new CppSide();
cppSide->TestFunction = [controller methodForSelector:@selector(PickFile:)];
cppSide->TestFunction(); //EXC_BADccess(code=1, address=0x2d)
は、私はどのように行う必要があります動作しませんか?
ありがとうございました!これは素晴らしい。そして、私がやったことはセレクタの ':'を削除した直後であることが判明しました – Yonghui
C++ 14標準を有効にすることをお勧めします。ラムダの方がはるかに良い(一般的なラムダを含む) – Arafangion