当我将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
}
谢谢 !!
最佳答案
假设arrayOfUSBInfor
是NSString
对象的数组,则需要:
for(int i=0; i< countOfUSB; i++){
usbInfors[i] = [[arrayOfUSBInfor objectAtIndex:i] UTF8String];
// ^^^^^^^^^^
}
为了将
const char *
分配给std::string
而不是NSString *
。同样这看起来很可疑:
[saveElement dealloc];
也许您的意思是:
[saveElement release];