目标 c/c++:将 NSArray 值分配给 c++ 静态数组时出错

Objective c/c++ : error when assign NSArray value into c++ static array

本文关键字:c++ 静态 数组 分配 出错 NSArray 目标      更新时间:2023-10-16

当我将NSArray值分配给静态数组C++时,它会给我"没有可行的重载'='"错误。这是我的代码:

一开始,我宣布

    static std::string usbInfors[ARRAY_ROW]; // save usb infor

然后,我包含字符串标头,并将我的文件更改为 .mm

    NSMutableArray *saveElement = [NSMutableArray new];
    int countOfUSB = 0; //count of usb drive
    .... //collected data and put into saveElement array
    NSArray *arrayOfUSBInfor = [NSArray arrayWithArray:saveElement];
    [saveElement dealloc];
    countOfUSB = [arrayOfUSBInfor count];
    for(int i=0; i< countOfUSB; i++){
        usbInfors[i] = [arrayOfUSBInfor objectAtIndex:i];//This line gives me error
    }

谢谢!!

假设arrayOfUSBInforNSString对象的数组,则需要:

for(int i=0; i< countOfUSB; i++){
    usbInfors[i] = [[arrayOfUSBInfor objectAtIndex:i] UTF8String];
    //                                                ^^^^^^^^^^
}

为了将const char *分配给std::string而不是NSString *.

这也看起来很可疑:

[saveElement dealloc];

也许你的意思是:

[saveElement release];