1

我正在尝试将测量值保存到核心数据可转换属性。基本上,这个答案有什么,只有一个不同的单位:如何在核心数据中保存通用测量<Unit>?

一切正常,但是我在日志中收到此消息: [general] 'NSKeyedUnarchiveFromData' should not be used to for un-archiving and will be removed in a future release

我不知道如何解决这个问题。或者它到底是什么意思。这是我第一次使用可转换的 Core Data 属性。

谢谢


编辑:

我开了一个新课:

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)
    }
}

然后我将核心数据对象的转换器值设置为:UnitTemperatureValueTransformer.

这就是所有需要做的吗?

4

1 回答 1

1

出现此警告是因为苹果将在未来的版本中删除它,因为默认情况下它不安全。这是Apple论坛上的主题。您应该使用NSSecureUnarchiveFromData代替。

于 2021-01-03T11:48:27.940 回答