繁体   English   中英

从NSString转换为“ const std :: string&”

[英]Casting from NSString to “const std::string&”

我对C ++和ObjectiveC真的很生疏,但是我已经将C ++库链接到我的iOS项目中。 我无法从iOS应用程序调用C ++库中的方法。

最终,我很难理解类型转换并正确处理。

有人可以帮助指出我做错了什么,并提供解决方案吗?

//在我的C ++库中

std::string Foo::bar(const std::string& src)
{
    //... 
}

//在我的iOS项目中:

NSString *input = @"Foo";    
NSString *output = [NSString stringWithCString: Foo::bar(std::string([input UTF8String])).c_str() encoding: [NSString defaultCStringEncoding]];

我在Xcode中得到的错误是:

Undefined symbols for architecture x86_64: 
Foo::bar(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from...

据我了解,这是问题的投入

我已经检查过StackOverflow,但似乎找不到从NSStringconst std :: string&的特定转换。

谢谢!

要将NSString转换为const std::string& ,只需使用[input UTF8String] 在下面尝试我的代码

NSString *input = @"Foo";
std::string str = [input UTF8String];
NSString *output = [NSString stringWithUTF8String:Foo::bar(str).c_str()];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM