Cocoa结构和NSMutableArray

Cocoa结构和NSMutableArray,cocoa,nsmutablearray,struct,Cocoa,Nsmutablearray,Struct,我有一个NSMutableArray,我正在尝试存储和访问一些结构。我该怎么做?”addObject'给我一个错误,说“addObject的参数1的类型不兼容”。下面是一个示例(“in”是NSFileHandle,“array”是NSMutableArray): //写入点 对于(int i=0;i您会收到错误,因为NSMutableArray只能接受对对象的引用,因此您应该将结构包装在类中: @interface PointClass { struct Point p; } @pr

我有一个NSMutableArray,我正在尝试存储和访问一些结构。我该怎么做?”addObject'给我一个错误,说“addObject的参数1的类型不兼容”。下面是一个示例(“in”是NSFileHandle,“array”是NSMutableArray):

//写入点

对于(int i=0;i您会收到错误,因为
NSMutableArray
只能接受对对象的引用,因此您应该将结构包装在类中:

@interface PointClass {
     struct Point p;
}

@property (nonatomic, assign) struct Point p;
这样,您就可以传入
PointClass
的实例


编辑:如上所述,NSValue已经以一种更通用的方式提供了这一功能,因此您应该继续使用。

您可以使用NSValue,或者在某些情况下使用字典而不是结构可能有意义。

如上所述,
NSValue
可以使用或包装普通结构:


有关更多示例,请参阅。

我不知道你是谁,但我会找到你,给你拿瓶啤酒!
@interface PointClass {
     struct Point p;
}

@property (nonatomic, assign) struct Point p;
// add:
[array addObject:[NSValue value:&p withObjCType:@encode(struct Point)]];

// extract:
struct Point p;
[[array objectAtIndex:i] getValue:&p];