Запустите ваше приложение в симуляторе и перейдите по следующему пути:
~ / Библиотека / Поддержка приложений / iPhone Simulator / Пользователь / Приложения / {GUID} / Документы
Где GUID будет такой строкой: 06430A38-AFAC-4C68-8F39-DBD6C81A5AA6 (это, вероятно, последняя измененная папка).
Убедитесь, что UserPaletteData.plist присутствует, и загрузите его в Редактор списка свойств .app , чтобы убедиться, что он содержит некоторые данные.
Также убедитесь, что вы используете только следующие типы данных в своем словаре, иначе он не сможет записать в список: (NSData, NSDate, NSNumber, NSString, NSArray или NSDictionary).
Чтобы убедиться, что словарь, который вы пытаетесь сохранить на диск, действителен для plist, попробуйте следующее:
for (id key in paletteDictionary)
{
NSLog(@"key: %@, value: %@, class: %@", key, [paletteDictionary objectForKey:key], NSStringFromClass([[paletteDictionary objectForKey:key] class]));
}
Это должно сказать вам, если какой-либо из ваших объектов имеет неправильный тип данных для plist.
Если это по-прежнему не помогает, то перед вызовом saveUserPalette следует убедиться, что paletteDictionary был выделен / инициализирован.