在 Swift 中为可转换属性实现 NSValueTransformer

roh*_*ohx 5 core-data swift

我正在尝试实现一个 NSValue 转换器,它应该可以帮助我使用 Transformable 属性将双数组保存到核心数据中。

所以我尝试实现了transformedValueClass。但是 NSArray.class() 被划掉了。不幸的是,我没有找到这样做的原因。

我的方法是这样的:

class PacePerK:NSValueTransformer{
    class func transformedValueClass() -> AnyClass!
    {
        return NSArray.class()
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下编译器错误:“.”后面的预期成员名称 类声明中的预期标识符

不幸的是,他们并没有真正帮助我。

为什么 NSArray.class 被划掉了?如何在不导致编译器错误的情况下返回 NSArray 的类?

jos*_*ger 5

在 Swift 中引用类对象的正确原因似乎是:

NSArray.self
Run Code Online (Sandbox Code Playgroud)

此外,在您的示例中,您需要使用“覆盖”标记您的已转换值类函数。所以:

class PacePerK:NSValueTransformer{
    override class func transformedValueClass() -> AnyClass!
    {
        return NSArray.self
    }
}
Run Code Online (Sandbox Code Playgroud)