2017-04-21 30 views
0

SongRLMObjectのサブクラス(typealias Object)で、私のアプリ全体で使用され、searchViewController(_:cellForObject:atIndexPath:)RLMObjectからObjectのサブクラスにキャストできませんか?

let song = object as! Song 

しかし、私のprepare(for segue:)方法(下記)、私は同じダウンキャストを実行しようとすると、コンパイラは「言うでに含みます「RLMObject」から無関係なタイプ「Song」へのキャストは常に失敗します。

if let row = tableView.indexPathForSelectedRow?.row { 
    YpbApp.currentRequest?.songObject = results!.object(at: UInt(row)) as? Song 
} 

これは意味がありませんが、何が間違っていますか?

答えて

3

RLMObjectObjectのタイプアリアではありません。それらは異なるインターフェースを持つ異なるクラスです。サポートされていないSwift APIとObjective-C APIを混在させようとしているようです。

+0

です。 'RealmSearchViewController'の' didSelect(object:atIndexPath:) 'メソッドを使って私が望むことを達成できました。 'RealmSearchViewController's' cell(行の場合:indexPath:) 'の実装を見て、' RLMObject'を 'Object'のサブクラスにキャストしたいのであれば、' RLMObject'を最初にキャストする必要があります'RLMObjectBase'を呼び出してそれを' Object'にキャストし、それを私のサブクラスにキャストします。しかし、私のサブクラスでは 'RLMObjectBase'にアクセスできません。 'RLMObjectBase'にアクセスできないのですか? –

関連する問題