Desidero avere un semplice NSSet che viene caricato con alcuni NSNumbers e quindi scoprire se quei numeri sono già stati aggiunti o meno nell'insieme. Quando faccio questo:NSSet of NSNumbers - il metodo membro è sempre nil
NSMutableSet *set = [[NSMutableSet alloc] init];
NSNumber *num1 = [NSNumber numberWithInt:5];
NSNumber *num2 = [NSNumber numberWithInt:5];
[set addObject:num1];
if([set member:num2]){
// something...
}
Il problema è che il membro restituisce sempre nullo (se è false), anche se quei numeri sono gli stessi. Il metodo isEqual restituisce true. Così
if([num1 isEqual:num2]){
// correct
}
opere ...
in Documenti Ho letto che il metodo utente utilizza IsEqual quindi non so quale sia il problema ... Grazie per qualsiasi consiglio.
se il codice è stato incollato correttamente - non hai aggiunto l'oggetto num2 al tuo set – Maggie
sei sicuro ... il tuo codice funziona perfettamente bene per me! – Devarshi
@Maggie sì, sono sicuro, il punto è che voglio controllare se il numero 5 è già nel set, ma devo usare nsnumber perché sono oggetti, quindi voglio controllare se l'oggetto nsnumber con valore di 5 è già nel set (num1 con valore 5 è, quindi dovrebbe restituire true) – haluzak