Mi sono imbattuto in un problema relativo ai puntatori all'interno di array in ogg-c.Modificare i valori all'interno di NSArray mediante dereferenziazione?
Quello che sto cercando di fare è prendere i puntatori all'interno di un NSArray, passarli a un metodo e quindi assegnare il valore restituito al puntatore originale (il puntatore che appartiene all'array).
Sulla base di ciò che so di C e C++, dereferendo i puntatori all'interno dell'array, dovrei essere in grado di modificare i valori a cui puntano ... Ecco il codice che sto usando, ma non funziona (il valore phone point non cambia mai in base all'output di NSLog).
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
Ed ecco la firma del metodo sto passando il NSString * a:
- (NSString*) removeNonNumbers: (NSString*) string;
Come potete vedere, sto scorrendo ogni NSString * entro phoneNumbers con il telefono variabile. Passo il telefono per rimuovereNonNumbers :, che restituisce il NSString * modificato. Quindi, rimuovere il puntatore restituito da removeNonNumber e assegnare il valore al telefono.
Come potete vedere, probabilmente non capisco bene gli oggetti Objective-C. Sono abbastanza sicuro che funzionerebbe in C++ o C, ma non riesco a capire perché non funzioni qui! Grazie in anticipo per il vostro aiuto!