相关疑难解决方法(0)

核心数据:在实体ZZZZ上找不到属性YYYY的类名为XXX的NSValueTransformer

我将我的CoreData模型设置在xcdatamodel文件中.

我的属性YYYY具有可转换的类型,我在数据模型检查器中设置转换器名称.

我的情况是我[CLLocation]在我的模型中存储了一个.

class LocationArrayTransformer : NSValueTransformer {


    override func transformedValue(value: AnyObject?) -> AnyObject? {

        let locations = value as! [CLLocation]

        return NSKeyedArchiver.archivedDataWithRootObject(locations)
    }

    override func reverseTransformedValue(value: AnyObject?) -> AnyObject? {

        let data = value as! NSData

        return NSKeyedUnarchiver.unarchiveObjectWithData(data)
    }


}
Run Code Online (Sandbox Code Playgroud)

那是我的价值变换器.

但不知何故,我仍然在控制台中收到警告: No NSValueTransformer with class name XXX was found for attribute YYYY on entity ZZZZ

任何想法为什么?

core-data ios swift

8
推荐指数
1
解决办法
1702
查看次数

我在哪里可以在 Swift 中注册 ValueTransformer?

我正在尝试在我的应用程序打开的第一个窗口使用的 Swift 中使用ValueTransformer(né NSValueTransformer)。值转换器需要先注册,ValueTransformer.registerValueTransformer(_:forName:)然后才能被用户界面运行时查询。

的文档NSValueTransformer 建议+[AppDelegate initialize]. 但是,Swift 不允许您覆盖+initialize. 我试图从applicationWillFinishLaunching(_)and注册applicationDidFinishLaunching(_),但它们都发生得太晚了,我的窗口没有被填满,因为运行时找不到值转换器。

我应该在哪里注册我的价值转换器?

macos cocoa swift

5
推荐指数
2
解决办法
732
查看次数

标签 统计

swift ×2

cocoa ×1

core-data ×1

ios ×1

macos ×1