ant*_*kes 18 iphone cocoa-touch nsdictionary nsmanagedobject ios
我有一个自定义类,它是一个子类NSManagedObject.我想将它存储在字典中,但是当我尝试这样做时,我收到一个Property list invalid for format: 200错误.
以下是我尝试创建字典的方法:
NSDictionary *dictionary =
[NSDictionary dictionaryWithObject: voiceMemo forKey:@"voiceMemo"];
Run Code Online (Sandbox Code Playgroud)
尝试时结果相同
NSDictionary *dictionary =
[NSDictionary dictionaryWithObject: (NSData *) voiceMemo forKey:@"voiceMemo"];
Run Code Online (Sandbox Code Playgroud)
但是,在尝试单独保存各个属性时,它可以正常工作:
NSDictionary *dictionary =
[NSDictionary dictionaryWithObject: voiceMemo.attribute forKey:@"attribute"];
Run Code Online (Sandbox Code Playgroud)
NSDictionary应该能够存储数据对象,所以我猜,真正的问题是如何将NSManagedObject对象转换为NSData
Mat*_*uch 51
您确定在创建字典时发生了错误,就像您发布的代码所暗示的那样吗?
Property list invalid for format: 200听起来你试图写你NSManagedObject的文件系统.哪个不行,因为NSManagedObjects不确认NSCoding.
您可以在NSDictionary中保存NSManagedObject的属性,并将此字典保存到文件中.
NSArray *keys = [[[myObject entity] attributesByName] allKeys];
NSDictionary *dict = [myObject dictionaryWithValuesForKeys:keys];
Run Code Online (Sandbox Code Playgroud)
当你想要恢复它时,你可以像这样设置managedObject的值:
[myObject setValuesForKeysWithDictionary:dict];
Run Code Online (Sandbox Code Playgroud)