我正在尝试将具有复杂结构的 NSDictionary 写入 plist 以在 iPhone 应用程序中使用。但是,该文件似乎根本没有写入,我不知道为什么。
结构应该是这样的:
Level Dict
Roads Array
Road1 Array
Vertex1 Dict
x Number
y Number
Vertex2 Dict
...
这就是我的代码的样子:
NSMutableDictionary *levels = [[NSMutableDictionary alloc] init];
NSMutableArray *roads = [[NSMutableArray alloc] init];
for(ChainLinkRoad *r in data.roads){
NSMutableArray *road = [[NSMutableArray alloc] init];
for(ChainPoint *p in r.v){
NSNumber *x = [NSNumber numberWithFloat: p.x];
NSNumber *y = [NSNumber numberWithFloat: p.y];
NSMutableDictionary *vertex = [[NSMutableDictionary alloc] init];
[vertex setObject:x forKey:@"x"];
[vertex setObject:y forKey:@"y"];
[road addObject:vertex];
}
[roads addObject:road];
}
[levels setObject:roads forKey:@"Roads"];
bool b = [levels writeToFile:@"test.plist" atomically:YES];
//returns true
我尝试将可变对象转换为不可变对象,但没有奏效。我能够从最终的 NSDictionary(级别)访问数据就好了。
编辑:我应该补充一点,这个 plist 不是在 iphone 游戏中实际使用的。在设计关卡时供个人使用。该代码不会在最终版本中存在。