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];
我做了这个解决方案,但它给出了一个糟糕的访问错误