Вопрос о разработке iPhone (ObjectiveC).TouchJSON сериализует структуру словарей и массивов
Я пытаюсь использовать библиотеку TouchJSON и имею некоторые проблемы с сериализацией JSON. У меня включен ARC, поэтому я использую ARC branch from github.. Я пытаюсь понять, что я считаю довольно простой вложенной структурой. Три словаря внутри и массив внутри словаря.
//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?
Я считаю, что это «withObjectsAndKeys», потому что он соответствует «setObject: forKey:». Последнее, вероятно, соответствует «objectForKey:». :) –