我的 Objective C ARC 项目中有一个 C++ 类。该类派生自纯 C++ 类,并为我的 iOS 项目添加了特定于平台的实现。我想在那里调用 Objective C 函数和框架。
我使用 C++11 lambda 函数实现了平台特定部分。我可以那样做吗?任何隐藏的陷阱(特别是因为我的 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;
}
}