2011-09-09 64 views
6

我有以下代碼:「NSSet allObjects」是否進行隨機排序?

self.temporaryImageArray = [(NSSet *)[[array objectAtIndex:0] images] allObjects] 

陣列從我的CoreData模型持有Band對象。它有一個NSSet作爲名爲「圖像」的屬性。

現在我使用這個temporaryImageArray來確定是否需要更新圖像的時間戳。我遇到了一些非常隨機的行爲,我現在的問題是:

[NSSet allObjects]是否從任意順序返回Set的對象?

有什麼辦法可以防止這種情況發生,或者讓它按順序返回嗎?這會減少我的代碼的複雜性。

回答

3

一套沒有訂單。但是,在10.7(Lion)中,有一個NSOrderedSet類。這在iOS 4.0中不可用。

+0

:-(thanks anyways .. – Octoshape

10

NSSet是一個無序的集合。它不知道它的對象的「順序」是什麼。因此,當您撥打-allObjects時,它會將其無序退回。

注意,上-allObjects狀態的文檔:

含有該組的成員,或者一個空數組,如果該組中沒有成員的數組。 未定義數組中對象的順序。

(重點煤礦)

3

NSOrderedSet和NSMutableOrderedSet現在在iOS 5中可用只是讓你保持最新。

這裏的link

相關問題