Me encontré con un problema relacionado con los punteros dentro de las matrices en Object-C.¿Cambiar los valores dentro de NSArray desreferenciando?
Lo que trato de hacer es tomar los punteros dentro de un NSArray, pasarlos a un método y luego asignar el valor devuelto al puntero original (el puntero que pertenece a la matriz).
Basado en lo que sé de C y C++, al eliminar la referencia de los punteros dentro de la matriz, debería ser capaz de cambiar los valores que señalan ... Aquí está el código que estoy usando, pero no está funcionando (el valor del teléfono apunta a que nunca cambia en función de la salida NSLog).
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
Y aquí está la firma del método que estoy pasando el NSString * a:
- (NSString*) removeNonNumbers: (NSString*) string;
Como se puede ver, estoy cada iteración a través de NSString * dentro PHONENUMBERS con el teléfono variable. Paso el teléfono para eliminarNonNumbers :, que devuelve el NSString * modificado. Luego, elimino la referencia del puntero devuelto por removeNonNumber y asigne el valor al teléfono.
Como puede ver, probablemente no entiendo bien Objective-C. Estoy bastante seguro de que esto funcionaría en C++ o C, pero no veo por qué no funciona aquí. ¡Gracias de antemano por tu ayuda!