ObjectiveCARCプロジェクトにC++クラスがあります。このクラスは純粋なC++クラスから派生し、iOSプロジェクトのプラットフォーム固有の実装を追加します。そこでObjectiveCの関数とフレームワークを呼び出したいと思います。
C++11ラムダ関数を使用してプラットフォーム固有のパーツを実装しました。そのようにできますか?隠れた落とし穴はありますか(特に私のiOSプロジェクトがARCを使用しているため)?
bool MyDerivedCPPClass::getValue(const std::string& stdKey, std::string& stdValue) const
{
NSString *key = [NSString stringWithUTF8String:stdKey.c_str()];
// Do ObjC stuff
if(value)
{
stdValue = std::string([value cStringUsingEncoding:NSUTF8StringEncoding]);
return YES;
}
else
{
return NO;
}
}