我有一个NSMutableArray,我正在尝试存储和访问一些结构。我该怎么做呢?'addObject‘给我一个错误,说“addObject的参数1的类型不兼容”。下面是一个例子('in‘是一个数组,’NSFileHandle‘是NSMutableArray):
//Write points
for(int i=0; i<5; i++) {
struct Point p;
buff = [in readDataOfLength:1];
[buff getBytes:&(p.x) length:sizeof(p.x)];
[array addObject:p];
}
//Read points
for(int i=0; i<5; i++) {
struct Point p = [array objectAtIndex:i];
NSLog(@"%i", p.x);
}
发布于 2010-06-01 17:29:20
如前所述,NSValue
可以使用+value:withObjCType:
或-initWithBytes:objCType:
包装普通结构
// add:
[array addObject:[NSValue value:&p withObjCType:@encode(struct Point)]];
// extract:
struct Point p;
[[array objectAtIndex:i] getValue:&p];
有关更多示例,请参阅Number and Value guide。
发布于 2010-06-01 10:41:16
您可以使用NSValue,或者在某些情况下,使用字典而不是结构可能更有意义。
https://stackoverflow.com/questions/2946993
复制相似问题