iPhone開発の質問(ObjectiveC)。
TouchJSONライブラリを使用しようとしていますが、JSONへのシリアル化に問題があります。ARCをオンにしているので、githubのARCブランチを使用しています。 私は、かなり基本的なネストされた構造であると私が想像するものを試しています。辞書内の3つの辞書と辞書内の配列。
//Make some dictionaries with simple string pairs
NSDictionary *dicA = [NSDictionary dictionaryWithObjectsAndKeys:@"x", @"1", @"y", @"2", nil];
NSDictionary *dicB = [NSDictionary dictionaryWithObjectsAndKeys:@"x", @"1", @"y", @"2", nil];
NSDictionary *dicC = [NSDictionary dictionaryWithObjectsAndKeys:@"x", @"1", @"y", @"2", nil];
//Make an array of dictionary objects
NSArray *saveArray = [NSArray arrayWithObjects:dicA, dicB, dicC, nil];
//Make dictionary which has that array as one of the values
NSDictionary *bigDic = [NSDictionary dictionaryWithObjectsAndKeys:@"arr", saveArray,
@"mmm", @"nnn", nil];
NSData *jsonData = [[CJSONSerializer serializer] serializeObject:saveArray error:NULL];
//This works '[{"1":"x","2":"y"},{"1":"x","2":"y"},{"1":"x","2":"y"}]'
NSData *jsonDataB = [[CJSONSerializer serializer] serializeObject:bigDic error:NULL];
//This fails
bigDicをシリアル化しようとすると、実行時に次のように爆破されます。
'NSInvalidArgumentException'、理由:'-[__ NSArrayI UTF8String]:認識されないセレクターがインスタンスに送信されました
上記の行で配列をシリアル化すると、問題なく機能するようです。私のbigDicの何が問題になっていますか?