iOS将CLLocation Core数据存储为可转换的NSKeyedUnarchiveFromDataTransformerName错误CoreData:警告:否NSValueTransformer

时间:2014-01-27 19:59:43

标签: ios iphone core-data cllocation

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

enter image description here

但是当我创建我的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'

你们中的任何人都知道我做错了什么或为什么我会得到错误?或者如何解决这个问题?

我真的很感谢你的帮助

2 个答案:

答案 0 :(得分:3)

它告诉你问题是什么。您将模型配置为使用名为NSKeyedUnarchiveFromDataTransformerName的类作为值转换器,但没有具有该名称的类。

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

答案 1 :(得分:-1)

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

我建议将核心数据存储在核心数据中,然后根据需要从数据中创建CLLocation个实例。