提问人:Michael Hulet 提问时间:10/24/2023 最后编辑:Michael Hulet 更新时间:10/24/2023 访问量:62
具有自定义值转换器的版本化核心数据模型的警告
Warning for Versioned Core Data Model with Custom Value Transformer
问:
在我的应用中,我有一个核心数据模型,其中包含一些实体,这些实体的属性具有使用我定义的自定义值的转换值。例如,从 Apple 的示例代码中:NSSecureUnarchiveFromDataTransformer
class ColorToDataTransformer: NSSecureUnarchiveFromDataTransformer {
override class func allowsReverseTransformation() -> Bool {
return true
}
override class func transformedValueClass() -> AnyClass {
return UIColor.self
}
override class var allowedTopLevelClasses: [AnyClass] {
return [UIColor.self]
}
override func transformedValue(_ value: Any?) -> Any? {
guard let data = value as? Data else {
fatalError("Wrong data type: value must be a Data object; received \(type(of: value))")
}
return super.transformedValue(data)
}
override func reverseTransformedValue(_ value: Any?) -> Any? {
guard let color = value as? UIColor else {
fatalError("Wrong data type: value must be a UIColor object; received \(type(of: value))")
}
return super.reverseTransformedValue(color)
}
}
extension NSValueTransformerName {
static let colorToDataTransformer = NSValueTransformerName(rawValue: "ColorToDataTransformer")
}
这作为属性的转换器包含在数据模型中:
但是,当我通过选择 添加新的模型版本时,会出现一条警告,指出:Editor > Add Model Version…
no NSValueTransformer with class name 'ColorToDataTransformer' was found for attribute 'tintColor' on entity 'Book'
这是一个编译时警告,而不是运行时控制台日志,因为我过去曾看到过对该消息的引用
尽管没有进行其他代码更改,但仍未进行其他代码更改。我将如何更正我的代码/模型,使警告消失?请注意,我已经尝试了以下各项:
- 将 on 属性设置为
Module
Current Product Module
- 定义方式
ColorToDataTransformer
@objc(ColorToDataTransformer)
- 将生成设置设置为
Suppress all momc warnings
Yes
然而,这些都没有使警告消失。我目前正在开发一个面向 iOS 16.4 并使用 Xcode 15.0.1 (15A507) 的应用程序
答: 暂无答案
评论