Domanda

Ho problemi Inizializzare un NSArray e l'aggiunta di numeri interi ad esso. Ecco il mio codice, che ho commentato in quello che sto cercando di realizzare. La mia app si blocca quando si aggiunge un oggetto, ma non so, se sto CLEARING l'array correttamente sia.

//CREATE AND INITIALIZE AN ARRAY
NSArray *ticket;                                                        
ticket = [[NSArray alloc] init];

//slotA,slotB,slotC are of type NSInteger that I am trying to add
//to the array (THIS CRASHES)

[ticket addObject:[NSNumber numberWithInt:slotA]];
[ticket addObject:[NSNumber numberWithInt:slotB]];
[ticket addObject:[NSNumber numberWithInt:slotC]];

//I never got to this line of code but I think it has to be wrong
//because this would throw the whole //array away. I dont want it
//to be thrown away I just wanna clear it out but keep it instanciated.

[ticket release];

Ho provato a farlo, ma la sua dicendo che sono "manca una chiamata di funzione sentinella"

NSArray *ticket;
NSString *sltA=[NSString stringWithFormat:@"%d", slotA];
NSString *sltB=[NSString stringWithFormat:@"%d", slotB];
NSString *sltC=[NSString stringWithFormat:@"%d", slotC];
ticket = [[NSArray alloc] initWithObjects:sltA,sltB,sltC];

Inoltre, devo cambiare gli interi a stringa di metterli in un array?

È stato utile?

Soluzione

Cambia NSArray in un NSMutableArray. Questo vi permetterà di aggiungere e rimuovere gli oggetti.

NSArray è una matrice che non è supponiamo di essere cambiato dopo la creazione.

NSMutableArray è solo una sottoclasse di NSArray e ha molte funzioni che vi aiuteranno a aggiungere e rimuovere gli oggetti in qualsiasi punto della matrice.

Altri suggerimenti

Appare il codice corretto (tecnicamente si dovrebbe usare +numberWithInteger: invece di +numberWithInt:, ma non è certo intenzione di causare un crash.) Qual è l'incidente che si vede? Puoi inviare l'output da GDB / Xcode?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top