2015-08-14 119 views
2

我们正试图将Realm以迭代的方式整合到我们的ios应用程序中。目前我们有很多NSArray类型的变量,最终必须由RLMResults替换。 但现在我想知道Realm数据库中的数据是否可以加载到这些变量中。 这里是一个这样的功能的例子:可以将RLMResults类型化为NSArray吗?

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 
       } 
      } 
     } 
    } 
} 

这里,allRelationsRLMResults对象而allRoomsForRelationshipNSArray。这导致了几个不一致。 这将是方便的类型转换RLMResultsNSArray

+0

对不起,我不认为我完全理解你的问题是什么 –

+0

总而言之,编号'RLMResults'不是来自'NSArray',所以编译器不会让你这样做。 – rfj001

回答

2

由于RLMResults不从NSArray继承,铸造一个NSArray是危险的 - 你会失去所有类型的安全性。你可能想要研究的是,将这些声明更改为id<NSFastEnumerable>对您的应用程序是否有意义,或者可能会声明一个具有NSArrayRLMResults共用方法的协议。

相关问题