我正在尝试将Measurement保存到Core Data可转换属性中。基本上,这个答案中的内容只是一个不同的单元:如何保存通用测量<单位>核心数据?
一切正常,但我在日志中收到了以下消息:[general] 'NSKeyedUnarchiveFromData' should not be used to for un-archiving and will be removed in a future release
我不知道该怎么解决。或者它到底意味着什么。这是我第一次使用可转换的核心数据属性。
感谢
编辑:
我上了一个新课:
import Foundation
@objc(UnitTemperatureValueTransformer)
final class UnitTemperatureValueTransformer: NSSecureUnarchiveFromDataTransformer {
static let name = NSValueTransformerName(rawValue: String(describing: UnitTemperatureValueTransformer.self))
override static var allowedTopLevelClasses: [AnyClass] {
return [UnitTemperature.self]
}
public static func register() {
let transformer = UnitTemperatureValueTransformer()
ValueTransformer.setValueTransformer(transformer, forName: name)
}
}
然后我将Core Data对象的transformer值设置为:UnitTemperatureValueTransformer
。
这就是需要做的全部吗?
出现此警告是因为苹果将在未来的版本中删除它,因为默认情况下它不安全。这是苹果论坛上的帖子。您应该使用NSSecureUnarchiveFromData,而不是那样。