2009-07-01 19 views
30

Esiste un modo per modificare il valore contenuto in un NSNumber dopo averlo creato senza far riferimento a un NSNumber diverso?Modifica del valore di un NSNumber

 
NSNumber *num = [NSNumber numberWithInt:0]; 
num = [NSNumber numberWithInt: 1]; // now num points to a different object, which I don't want. I want it the same object still, but different value. 

risposta

41

NS Il numero è immutabile. In realtà, è una sottoclasse di NSValue e tutti gli NSValue sono immutabili.

+1

È un po 'strano che non ci sia NSMutableNumber –

+1

In realtà, in genere quando si desidera un numero "mutabile" si finisce per utilizzare una primitiva. NSNumber è più utile per la serializzazione, essendo una chiave di dizionario e cose lungo quelle linee. –

+4

@MarcCharbonneau ci sono sicuramente momenti in cui vuoi che un numero sia mutabile. Ne ho appena trovato uno ... e invece ho semplicemente archiviato il mio numero in un NSMutableString (non potevo essere disturbato a definire la mia classe solo per memorizzare un intero mutabile in un NSDictionary immutabile). –

10

No, non è possibile modificare il valore di NSNumber.

Vedere, ad esempio, this post.

Problemi correlati