Я конвертирую файл JSON в plist, используя новый класс NSJSONSerialization и класс NSPropertyListSerialization. Мне удается без ошибок преобразовать JSON в Plist, но на последнем шаге, когда я пишу plist на рабочий стол, происходит сбой программы, но ПОСЛЕ Plist сгенерировано!
NSData *data = [[NSData alloc] initWithContentsOfURL:path]; \\(NSURL *)path -->goes to my JSON file
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingMutableContainers
error:nil];
//the following removes all key/object pairs where the object is null, because NSPropertyListSerialization with throw an error if there are null values
for (id __strong object in [json objectForKey:@"terms"]) {
if ([object objectForKey:@"image"] == [NSNull null]) {
[object removeObjectForKey:@"image"];
}
}
//the following NSPropertyListSerialization method returns an NSData
id plist = [NSPropertyListSerialization dataFromPropertyList:(id)json
format:NSPropertyListXMLFormat_v1_0
errorDescription:nil];
NSError *writeToFileError;
[plist writeToFile:@"/Users/kalaracey/Desktop/test.plist"
atomically:YES
encoding:NSUTF8StringEncoding
error:&writeToFileError];
Затем в этой последней строке выдается NSInvalidArgumentException
и происходит сбой моей программы. Тем не менее, список был успешно создан! Я могу прочитать это, и все хорошо, кроме моей программы, вылетает.
Может кто-нибудь объяснить, почему это происходит, и как я могу избежать этого?