Iphone 从NSMutableArray添加和提取结构

Iphone 从NSMutableArray添加和提取结构,iphone,struct,nsarray,Iphone,Struct,Nsarray,可能重复: 我需要创建一个结构数组,例如: typedef struct { int fill; BOOL busy; } MapCellST; 如何在NSMutableArray中添加此结构的实例,以及如何提取该结构的副本并在以后处理其属性?将该结构包装在一个NSValue中: MapCellSt x; NSValue* value = [NSValue value:&x withObjCType:@encode(MapCellSt)]; 要在以后提取它,请执行以

可能重复:

我需要创建一个结构数组,例如:

typedef struct
{
    int fill;
    BOOL busy;
} MapCellST;

如何在NSMutableArray中添加此结构的实例,以及如何提取该结构的副本并在以后处理其属性?

将该结构包装在一个
NSValue
中:

MapCellSt x;
NSValue* value = [NSValue value:&x withObjCType:@encode(MapCellSt)];
要在以后提取它,请执行以下操作:

[value getValue:&x];
你不能

只有真实的Obj-C对象才能直接添加到NSMutableArray和friends中;为了完成所描述的工作,您必须创建一个具有要使用的结构属性的类


编辑:正如塔马斯所说,您也可以使用NSValue;但很可能为MapCell创建类是一个更好的主意。

使用
NSMutableDictionary
而不是
NSMutableArray

typedef结构{…}MyStruct

NSMutableString* myKey = [NSMutableString stringWithString:@"MyKey"];
NSValue *myStructPtr = [NSValue value:&myStruct withObjCType:@encode( MyStruct )];
[myMutableDictionary setObject:myStructPtr forKey:myKey];

我做了这个解决方案,但它给出了一个糟糕的访问错误