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

一开始,我宣布

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

然后,我包含了String header ,并将文件更改为.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];

10-04 12:58