2015-10-27 14 views
8

Results<T>List<T>に変換することはできますか?これを行うべきではありませんか?レルム:結果<T> alsリスト<T>

私の場合、パラメータとしてListを持つメソッドがあります。

let results: Results<MyObject> = ... 
let converted = results.reduce(List<MyObject>()) { (list, element) -> List<MyObject> in 
    list.append(element) 
    return list 
} 

あなたはこのコードを置くことができます:私はあなたがそれを変換するためにreduceを使用できるよう

+0

「RealmCollectionType」であるという事実を利用できますか? –

答えて

4

ResultsおよびListCollectionTypeおよびRealmCollectionTypeを実装します。後者は、以前のプロトコルの特化であり、集約関数を効率的に使用し、フィルタリングの&ソートエントリを効率的に使用できるようにします。

レルムスウィフトでは、コレクションの種類について強力な前提はほとんどありません。彼らはちょうど前者CollectionTypeの一般化であるSequenceTypeを期待しています。あなた自身の方法については、私は同じように行くことをお勧めします。あなたはそれを次のように宣言することによってそれに到達することができます。

func foo<T, S: SequenceType where S.Generator.Element == T>(objects: S) { … } 
11

ResultsCollectionTypeプロトコルを実装してフェッチされたオブジェクト(Results<T>)とし、計算されたオブジェクト(List<T>)で、このメソッドを呼び出したいです拡張子、またはあなたが好きです。

関連する問題