我们正在尝试以迭代方式将 Realm 集成到我们的 ios 应用程序中。目前我们有很多 NSArray 类型的变量,它们最终必须被 RLMResults 替换。 但现在我想知道是否可以将 Realm db 中的数据加载到这些变量中。 以下是此类函数的一个示例:
func preloadData() {
if( realmEnabled )
{
if( self.currentLeftSideBarState == GLOBAL_CUSTOMER_STATE ) {
self.allRelations = Relationship.allObjectsInRealm(relationshipRealm)
} else if( self.currentLeftSideBarState == SINGLE_CUSTOMER_STATE ) {
let rel = Relationship( customers: currentCustomerSelected! )
if rel.realm != nil {
if let rooms = rel.linkingObjectsOfClass( RoomObj.className(), forProperty: "relationship" ) {
self.allRoomsforRelationship = rooms
}
}
}
}
}
这里,allRelations
是一个 RLMResults
对象,而 allRoomsForRelationship
是一个 NSArray
。这会导致一些不一致的情况。
将 RLMResults
类型转换为 NSArray
最佳答案
自 RLMResults
不继承自NSArray
,转换到 NSArray
是危险的——你会失去所有类型的安全性。您可能想要研究的是是否将这些声明更改为 id<NSFastEnumerable>
对您的应用程序有意义,或者声明一个具有两者通用方法的协议(protocol) NSArray
和RLMResults
.
关于realm - RLMResults 可以类型转换为 NSArray 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32010548/