2011-09-09 8 views
6

Ho il seguente codice:"NSSet allObjects" esegue l'ordinamento casuale?

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

Array detiene un oggetto Band dal mio modello CoreData. Ha un NSSet come una proprietà chiamata "immagini".

Ora utilizzo questo temporaryImageArray per determinare tramite data e ora che le immagini debbano essere aggiornate o meno. Mi sono imbattuto in un comportamento molto casuale e la mia domanda ora è:

[NSSet allObjects] restituisce gli Oggetti dal Set casualmente in nessun ordine?

C'è un modo per impedirlo o per farlo restituire in ordine? Ridurrebbe molto la complessità del mio codice.

risposta

3

Un set non ha ordine. Tuttavia, in 10.7 (Lion), esiste una classe NSOrderedSet. Questo non è disponibile in iOS 4.0.

+0

:-(grazie comunque .. – Octoshape

10

NSSet è una collezione non ordinata. Non ha idea di cosa sia l'"ordine" dei suoi oggetti. Pertanto, quando chiami -allObjects, li restituisce non ordinati.

noti che la documentazione sul -allObjects paese:

Un array contenente membri del set, o un array vuoto se l'insieme non ha membri. L'ordine degli oggetti nell'array non è definito.

(sottolineatura mia)

3

NSOrderedSet e NSMutableOrderedSet sono ora disponibili in iOS 5 solo così si sta tenuto aggiornato.

Ecco lo

Problemi correlati