繁体   English   中英

可转换和 NSKeyedUnarchiveFromData

[英]Transformable and NSKeyedUnarchiveFromData

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

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

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

谢谢


编辑:

我做了一个新的 class:

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

然后我将核心数据 object 的变压器值设置为: UnitTemperatureValueTransformer

这就是所有需要做的吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM