NSDictionary con asignación de NSNumber a NSString es un objeto que no es una lista de propiedades
Siguiente código:
[[NSUserDefaults standardUserDefaults] setObject:photoIdToPath forKey:@"photo_id_to_path"];
me da el siguiente error:
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
Aquí estáphotoIdToPath
análisis de contenido del diccionario desde la consola de depuración de 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
EntoncesNSPathStore2
es subclase deNSString
, ¿por qué este diccionario no es una lista de propiedades?
ACTUALIZAR:
aquíhttps://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsuserdefaults_Class/Reference/Reference.html#//apple_ref/occ/instm/NSUserDefaults/setObject:forKey: Encontré texto:
El parámetro de valor solo puede ser objetos de lista de propiedades: NSData, NSString, NSNumber, NSDate, NSArray o NSDictionary. Para los objetos NSArray y NSDictionary, sus contenidos deben ser objetos de lista de propiedades. Consulte “¿Qué es una lista de propiedades?” En la Guía de programación de la lista de propiedades.