2016-12-16 150 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

不幸的是,您需要投射 –