微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Objective-C中使用共享C / STL代码

我有很多共享的C代码,我想在我的iPhone应用程序中使用.我将.cpp和.h文件添加到我的Xcode项目中,并使用了Objective-C代码中的类.该项目编译正确,0错误或警告.

但是,当我在模拟器中运行它时,当我尝试在我的objective-c代码(例如.c_str())中访问STL方法时,我得到以下错误

Program received signal:  “EXC_BAD_ACCESS”.

Unable to disassemble std::string::c_str.

以下是导致错误代码示例:

[name setText:[[Nsstring alloc] initWithCString:myCPlusPlusObject->cppname.c_str()]];

其中name是NSTextField对象,cppname是myCPlusPlusObject的std :: string成员.

我是以正确的方式来做这件事的吗?有没有更好的方法在Objective-C中使用STL-laden C类?我希望尽可能保持常见的C文件不变,以避免必须在两个地方维护代码.

提前致谢!

解决方法:

在将字符串传递给initWithCString函数之前,请确保该字符串不为空.

您使用的功能也已弃用,use this one instead.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐