2015-08-14 50 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共用方法的協議。

相關問題