在Swift中迭代RLMArray
问题描述:
我在混合的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在迭代请帮助迅速。
答
复制RLMSupport.swift到您的项目。它包括对Objective-C和Swift互操作性的改进。其中有一个RLMArray
到Sequence
。
+0
谢谢!它可以工作,但迭代器中的对象是'RLMIterator.Element'而不是'Media'。然后我必须在迭代器中手动进行投射。直接获取直接“媒体”实例的任何方式? –
+0
不幸的是,您需要投射 –
我正在使用'import realmSwift' ...为什么不是你? –
RealmSwift仅适用于纯粹的swift项目。 –