我让事情变得简单。我将一个新的 C + + 文件添加到我的 Objective C 项目中,并将其重命名为。然后在内部创建一个标准的 C + + 类。然后,我在“ public:”部分为一个 C + + 函数创建一个静态类方法,该函数接受一个 NSString 并返回一个 NSString (或者 NSArray,如果您需要的话)。然后我将 NSString 转换为 C + + std: : string,如下所示:
// If anyone knows a more efficient way, let me know in the comments.
// The "if" condition below is because ObjC crashes if converting to
// std::string if the string is nil or empty.
// assume #include <string>
std::string s = "";
if (([sInput != nil]) && (!([sInput isEqualTo:@""]))) {
std::string sTemp([sInput UTF8String]);
s = sTemp;
}