2016-12-16 153 views
0

我在混合的ObjC/Swift項目中使用Realm Objective-C。在Swift中迭代RLMArray

我確實有一個變量,它包含一個RLMArray,其中Media也是一個RMLObject。

我想通過這個陣列採用了經典的迭代器遍歷如

let medias: RLMArray<Media> 
for media in medias { 
    //Use media as a Media object. 
} 

然而,斯威夫特編譯器拒絕這個語法錯誤:

Type 'RLMArray<Media>' does not not conform to protocol 'Sequence' 

上通過RLMArray在迭代請幫助迅速。

+0

我正在使用'import realmSwift' ...爲什麼不是你? –

+0

RealmSwift僅適用於純粹的swift項目。 –

回答

1

複製RLMSupport.swift到您的項目。它包括對Objective-C和Swift互操作性的改進。其中有一個RLMArraySequence

+0

謝謝!它可以工作,但迭代器中的對象是'RLMIterator.Element'而不是'Media'。然後我必須在迭代器中手動進行投射。直接獲取直接「媒體」實例的任何方式? –

+0

不幸的是,您需要投射 –