0

Swift 2.0 プロジェクト (objective-c の相互運用性が必要) で realm-cocoa(v1.0.1) を使用しており、linkingObjectsProperties メソッドのオーバーライドに問題があります。

Realm のドキュメント ( https://realm.io/docs/objc/latest/#inverse-relationships ) に従い、次のように RLMObject サブクラスで関数のオーバーライドを定義しました。

override class func linkingObjectsProperties() -> NSDictionary {
    return ["owners": RLMPropertyDescriptor(withClass: Person.self, propertyName: "dogs")]
}

コンパイラは、「メソッドはそのスーパークラスのメソッドをオーバーライドしません」と不平を言います。

定義の前に @objc を付けると、エラーは「セレクター 'linkingObjectsProperties' でメソッドをオーバーライドすると、互換性のない型 '() -> NSDictionary' があります」に変わります。

何か案は?

ありがとう!

4

1 に答える 1

0

+[RLMObject linkingObjectsProperties]として Swift に公開されclass func linkingObjectsProperties() -> [String : RLMPropertyDescriptor]ます。その署名に一致するようにオーバーライドを更新すると、うまくいくはずです。

于 2016-06-29T23:11:47.553 に答える