iPhoneアプリで使用するために、複雑な構造のNSDictionaryをplistに書き込もうとしています。しかし、ファイルがまったく書き込まれていないようで、理由がわかりません。
構造は次のようになります。
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ゲームで実際に使用するためのものではないことを付け加えておきます。レベルを設計する際の個人的な使用のためです。コードは最終バージョンには存在しません。