iOS将CLLocation核心数据存储为可转换的NSKeyedUnachiveFromDataTransformerName错误核心数据:警告:无NSValueTransformer

iOS将CLLocation核心数据存储为可转换的NSKeyedUnachiveFromDataTransformerName错误核心数据:警告:无NSValueTransformer,ios,iphone,core-data,cllocation,Ios,Iphone,Core Data,Cllocation,我正在尝试将CLLocation对象存储在核心数据中。我从DataTransformerName设置核心数据NSKeyedUnachiveFromDataTransformerName: 但当我创建NSEntityDescription以添加对象时: Locations *location= [NSEntityDescription insertNewObjectForEntityForName:@"Locations" inManagedObjectContext:self.cdManage

我正在尝试将CLLocation对象存储在核心数据中。我从DataTransformerName设置核心数据NSKeyedUnachiveFromDataTransformerName:

但当我创建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'
你们有谁知道我做错了什么,或者为什么我会犯这样的错误?或者这是如何解决的


我非常感谢您的帮助

CLLocation
未实现
NSCoding
协议,因此无法像这样进行转换


我建议将纬度和经度存储在核心数据中,然后您可以根据需要从数据创建
CLLocation
实例。

它告诉您问题出在哪里。您已将模型配置为使用名为
NSKeyedUnarchiveFromDataTransformerName
的类作为值转换器,但没有具有该名称的类


输入的字符串必须是项目中存在的
NSValueTransformer
子类的名称。如果将字段留空,核心数据将使用
NSCoding
对值进行编码。由于您希望对
CLLocation
进行编码,并且
CLLocation
实现了
NSCoding
,因此应该将该文本字段留空。核心数据将调用
NSCoding
方法将对象转换为
NSData

,但根据文档,
CLLocation
符合
NSSecureCoding
,它继承自
NSCoding
。啊,在扫描中错过了该方法:)我仍将存储原始值。