0

作成しているplistファイルがありますが、ファイルに書き込む代わりに、その内容を文字列としてNSLogに出力したいと思います。

NSMutableDictionary* root = [NSMutableDictionary dictionaryWithCapacity:1];
NSMutableArray* puzzle = [NSMutableArray arrayWithCapacity: [self.puzzlePieces count] ];
root[@"puzzle"] = puzzle;

[self.puzzlePieces enumerateObjectsUsingBlock:^(KTPuzzlePiece* piece, NSUInteger idx, BOOL *stop) {
    NSMutableDictionary* pieceInfo = [piece.pieceInfo mutableCopy];
    pieceInfo[@"x"] = [NSNumber numberWithFloat: piece.position.x];
    pieceInfo[@"y"] = [NSNumber numberWithFloat: piece.position.y];

    [puzzle addObject:pieceInfo];
}];


NSData *data = [NSPropertyListSerialization dataFromPropertyList:root
                                                          format:NSPropertyListXMLFormat_v1_0
                                                errorDescription:nil];

ただし、以下は16進値を出力します

    NSLog(@"Data: %@", data);
4

1 に答える 1

2

あなたはただ一歩を逃しています。NSDataを文字列に変換する必要があり、次のようになります。

NSData *data = [NSPropertyListSerialization 
                       dataFromPropertyList:root
                                     format:NSPropertyListXMLFormat_v1_0
                           errorDescription:nil];

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@", string);
于 2012-10-31T18:04:18.050 に答える