Cir*_*cle 16 cocoa struct nsmutablearray
我有一个NSMutableArray,我正在尝试存储和访问一些结构.我该怎么做呢?'addObject'给我一个错误,说"addObject的参数1的不兼容类型".这是一个例子('in'是NSFileHandle,'array'是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);
}
Run Code Online (Sandbox Code Playgroud)
Geo*_*che 45
如上所述,NSValue可以使用+value:withObjCType:or 包装普通结构 -initWithBytes:objCType::
// add:
[array addObject:[NSValue value:&p withObjCType:@encode(struct Point)]];
// extract:
struct Point p;
[[array objectAtIndex:i] getValue:&p];
Run Code Online (Sandbox Code Playgroud)
有关更多示例,请参阅数字和值指南.
| 归档时间: |
|
| 查看次数: |
7790 次 |
| 最近记录: |