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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta