1

当我将 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
    }

谢谢 !!

4

1 回答 1

3

假设这arrayOfUSBInfor是一个NSString对象数组,您将需要:

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

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

这看起来也很可疑:

[saveElement dealloc];

也许你的意思是:

[saveElement release];
于 2013-07-03T13:34:16.903 回答