简体   繁体   中英

Transformable and NSKeyedUnarchiveFromData

I'm trying to save a Measurement to a Core Data transformable property. Basically, what's in this answer, only a different unit: How to Save a Generic Measurement<Unit> in Core Data?

Everything works, however I'm getting this message in the log: [general] 'NSKeyedUnarchiveFromData' should not be used to for un-archiving and will be removed in a future release

I'm not sure how to fix this. Or what exactly it means. This is my first time working with a transformable Core Data property.

Thanks


Edit:

I made a new 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)
    }
}

And then I set the transformer value for the Core Data object to: UnitTemperatureValueTransformer .

Is that all that needs to be done?

This warning appears because apple will remove it in future release because it's not secure by default. Here is thread on Apple forum. You should use NSSecureUnarchiveFromData instead of that.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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