У меня есть этот URL, который возвращает JSON. Я пишу JSON в Словаре следующим образом:NSDictionary вдруг становится NSArray
NSData* Data = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:&error];
NSDictionary *schools = [NSJSONSerialization JSONObjectWithData:Data options:kNilOptions error:nil];
Тогда, я пишу, что словарь в файл:
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"schools.plist"];
[schools writeToFile:filePath atomically:YES];
Во время работы код, я проверить словарь, который появляется, чтобы содержать действительные объекты :
Однако, когда я проверить файл на диске, это выглядит как массив:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>Id</key>
<string>ffefe0f7-23bf-471f-8e99-58ada0229921</string>
<key>Name</key>
Ожидаемое поведение? Другие методы в моем коде полагаются на получение Словаря из этого файла.
'NSLog (@ "Класс:% @", [[NSJSONSerialization JSONObjectWithData: Варианты данных: kNilOptions ошибка: ноль] Класс]) 'возвращает действительно NSDictionary? Может быть, ваш JSON на самом деле возвращает NSArray? Кроме того, проверьте, что «школы» не «перезаписаны» где-то – Larme
Похоже, что 'JSONObjectWithData' возвращает' NSArray', содержащий 'NSDictionary'. – keithbhunter
Смотрите мою добавленную иллюстрацию. Когда «школы» инициируются, похоже, нет проблем с данными json – Sjakelien