将NSString传递给C ++方法

时间:2012-07-24 16:10:36

标签: nsstring objective-c++ stdstring

我正在尝试将NSString传递给C ++方法,我尝试了这个但它不起作用:

    trackName = @"name";
    Track track(new String([trackName UTF8String]));

我正在.mm文件中编写此代码。我还在文件顶部添加了#include <string>,但我不确定是否有必要。知道我做错了什么吗?这些是我得到的错误:

enter image description here

这是我正在调用的C ++轨道构造函数:

Track(const string &aTrackName)
    {
    trackName =  aTrackName;
}

1 个答案:

答案 0 :(得分:1)

问题是你的函数期望string并且你试图实例化一个String对象,它可能一无所知。

此代码的另一个问题是它需要一个字符串引用,但是你传递一个指向字符串的指针。你可以简单地将它传递给临时字符串。尝试:

Track track(std::string([trackName UTF8String]));