提取結構可能重複:
What’s the best way to put a c-struct in an NSArray?添加和NSMutableArray的
我需要創建結構,如數組:
typedef struct
{
int fill;
BOOL busy;
} MapCellST;
如何添加NSMutableArray中的這個結構的實例,以及我如何提取結構的副本並使用它的屬性lat呃?
提取結構可能重複:
What’s the best way to put a c-struct in an NSArray?添加和NSMutableArray的
我需要創建結構,如數組:
typedef struct
{
int fill;
BOOL busy;
} MapCellST;
如何添加NSMutableArray中的這個結構的實例,以及我如何提取結構的副本並使用它的屬性lat呃?
裹在NSValue
的結構:
MapCellSt x;
NSValue* value = [NSValue value:&x withObjCType:@encode(MapCellSt)];
要在以後提取它:
[value getValue:&x];
雅不能。
只有真正的Obj-C對象可以直接添加到NSMutableArray和朋友;爲了做你所描述的你將不得不用你想要使用的結構的屬性創建一個類。
編輯:正如Tamás所說,你也可以使用NSValue;但很可能爲您的MapCell創建一個類是一個更好的主意。
使用NSMutableDictionary
而不是NSMutableArray
。
typedef struct {...} MyStruct;
NSMutableString* myKey = [NSMutableString stringWithString:@"MyKey"];
NSValue *myStructPtr = [NSValue value:&myStruct withObjCType:@encode(MyStruct)];
[myMutableDictionary setObject:myStructPtr forKey:myKey];
我做了這個解決方案,但它給出了一個錯誤的訪問錯誤 – 2014-09-01 12:47:59