我有一个NSManagedObject扩展,它需要动态计算一个属性。这用于从NSEntity描述中获取jsonkey。
下面的代码过去工作得很好,但是更新到最新的swift版本会抛出一个错误:
“anyClass类型(也称为anyobject.type)的值没有成员‘jsonkey’。”

extension NSManagedSyncedObject {
    class var jsonKey: String {
        return // Some code fetching the proper value
    }

    var jsonKey: String {
        return NSClassFromString("\(type(of: self))")!.jsonKey
    }
}

我认为nsClassFromString不像以前那样允许,但我不确定如何升级代码来修复此错误。

最佳答案

如果您只想从实例方法访问类变量,则不需要整个NSClassFromString部分。您只需使用type(of: self)即可。

extension NSManagedSyncedObject {
    class var jsonKey: String {
        return // Some code fetching the proper value
    }

    var jsonKey: String {
        return type(of: self).jsonKey
    }
}

09-06 15:33