NSDictionary с сопоставлением NSNumber-NSString является объектом не-списка свойств
Следующий код:
[[NSUserDefaults standardUserDefaults] setObject:photoIdToPath forKey:@"photo_id_to_path"];
дает мне следующую ошибку:
Attempt to set a non-property-list object {
417675729 = "/Users/k06a/Library/Application Support/iPhone Simulator/7.1/Applications/21163736-DF6F-4E79-8196-6A966C81ED1B/Documents/417675729";
} as an NSUserDefaults value for key photo_id_to_path
ВотphotoIdToPath
анализ содержания словаря с консоли отладки Xcode:
(lldb) po photoIdToPath
{
417675729 = "/Users/k06a/Library/Application Support/iPhone Simulator/7.1/Applications/21163736-DF6F-4E79-8196-6A966C81ED1B/Documents/417675729";
}
(lldb) po [[[photoIdToPath allKeys] lastObject] class]
__NSCFNumber
(lldb) po [[[photoIdToPath allValues] lastObject] class]
NSPathStore2
ТакNSPathStore2
это подклассNSString
почему этот словарь не является списком свойств?
ОБНОВИТЬ:
Параметром value могут быть только объекты списка свойств: NSData, NSString, NSNumber, NSDate, NSArray или NSDictionary. Для объектов NSArray и NSDictionary их содержимое должно быть объектами списка свойств. См. «Что такое список свойств?» В Руководстве по программированию списка свойств.