NSDictionary mit der Zuordnung von NSNumber zu NSString ist ein Objekt, das keine Eigenschaftsliste ist
Folgender Code:
[[NSUserDefaults standardUserDefaults] setObject:photoIdToPath forKey:@"photo_id_to_path"];
gibt mir folgenden fehler:
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
Hier istphotoIdToPath
Inhaltsanalyse des Wörterbuchs über die Xcode-Debug-Konsole:
(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
DamitNSPathStore2
ist eine Unterklasse vonNSString
, warum ist dieses Wörterbuch keine Eigenschaftsliste?
AKTUALISIEREN:
Hierhttps://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsuserdefaults_Class/Reference/Reference.html#//apple_ref/occ/instm/NSUserDefaults/setObject:forKey: Ich habe Text gefunden:
Der Wertparameter kann nur Eigenschaftenlistenobjekte sein: NSData, NSString, NSNumber, NSDate, NSArray oder NSDictionary. Für NSArray- und NSDictionary-Objekte müssen deren Inhalte Eigenschaftenlistenobjekte sein. Siehe „Was ist eine Eigenschaftsliste?“ Im Programmierhandbuch für die Eigenschaftsliste.