realm - RLMResults 可以类型转换为 NSArray 吗?

标签 realm

我们正在尝试以迭代方式将 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) NSArrayRLMResults .

关于realm - RLMResults 可以类型转换为 NSArray 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32010548/

相关文章:

swift - 为 Realm 对象匹配分离的数组

ios - 如果 Realm 对象为空,我如何返回或创建一个 Realm 对象?

java - 异步写入后不久添加时,RealmChangeListener 不会执行

ios - 无法写入我预捆绑的 Realm 文件

android - 在 Realm for Android 中直接访问字段

ios - 使用 Realm 和结果 JSON

kotlin - RxJava2 Kotlin SwitchMap 从 RealmResults 到 Observable

android - Realm - 当在测试类 @Before 方法上创建这些对象时,无法查询 Activity/fragment 内的对象

ios - 有没有办法知道何时从 UITableView 中删除 UITableViewCell?

swift - 带 OR 运算符的 Realm 主键