Come restituire un NSMutableArray da un NSSet


104

Sono in grado di inserire il contenuto di un NSSetin un NSMutableArraysimile:

NSMutableArray *array = [set allObjects];

Il compilatore si lamenta però perché [set allObjects] restituisce un NSArraynon un NSMutableArray. Come dovrebbe essere risolto?

Risposte:


218

Poiché -allObjectsrestituisce un array, puoi creare una versione modificabile con:

NSMutableArray *array = [NSMutableArray arrayWithArray:[set allObjects]];

Oppure, in alternativa, se vuoi gestire la proprietà dell'oggetto:

NSMutableArray *array = [[set allObjects] mutableCopy];

7
Nota: c'è una sottile differenza tra i due metodi, se setè nil.
Zach Langley

-1

Ho risolto l'arresto anomalo utilizzando il metodo 'addObjectsFromArray' di NSMutableArray per assegnare tutti gli oggetti NSSet a NSMutableArray come:

[mutableArray addObjectsFromArray:[cg_Schedule.schedule_Days allObjects]];

Spero che questo ti aiuti.


-3

Per un set ordinato utilizzare:

NSArray *myArray = [[myOrderedSet array] mutableCopy];

Non sembra esserci un - arraymetodo NSSet .
Sophie Alpert
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.