我正在尝试将 CLLocation 对象存储在核心数据中。我设置核心数据 NSKeyedUnarchiveFromDataTransformerName :
但是当我创建我的 NSEntityDescription 来添加对象时:
Locations *location= [NSEntityDescription insertNewObjectForEntityForName:@"Locations" inManagedObjectContext:self.cdManager.managedObjectContext];
我收到这个错误:
CoreData: warning: no NSValueTransformer with class name 'NSKeyedUnarchiveFromDataTransformerName' was found for attribute 'locations' on entity 'Locations'
你们中的任何人都知道我做错了什么或为什么会出现错误?或者如何解决?
非常感谢你的帮助
最佳答案
它告诉您问题出在哪里。您将模型配置为使用名为 NSKeyedUnarchiveFromDataTransformerName
的类作为值转换器,但没有具有该名称的类。
您输入的字符串必须是项目中存在的 NSValueTransformer
子类的名称。如果将该字段留空,Core Data 将使用 NSCoding
对值进行编码。由于您想要对 CLLocation
进行编码,并且由于 CLLocation
实现了 NSCoding
,因此您应该将该文本字段留空。 Core Data 将调用 NSCoding
方法将对象转换为 NSData
。
关于iOS 存储 CLLocation 核心数据作为可转换的 NSKeyedUnarchiveFromDataTransformerName 错误 CoreData : warning: no NSValueTransformer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21390456/