Ich habe ein Problem im Zusammenhang mit Zeigern innerhalb von Arrays in objective-c gefunden.Ändern Sie die Werte in NSArray durch Dereferenzierung?
Ich versuche, die Zeiger innerhalb eines NSArray zu nehmen, sie an eine Methode zu übergeben und dann den zurückgegebenen Wert dem ursprünglichen Zeiger (dem Zeiger, der zu dem Array gehört) zurückzugeben.
Basierend auf was ich von C und C++ weiß, durch Dereferenzierung der Zeiger innerhalb des Arrays, sollte ich in der Lage sein, die Werte zu ändern, auf die sie zeigen ... Hier ist der Code, den ich verwende, aber es funktioniert nicht (Der Wert, auf den das Telefon zeigt, ändert sich niemals basierend auf der NSLog-Ausgabe).
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
Und hier ist die Methode Unterschrift ich das NSString * bin vorbei an:
- (NSString*) removeNonNumbers: (NSString*) string;
Wie Sie sehen können, habe ich innerhalb phonenumbers mit dem variablen Telefon durch jeden NSString * am iterieren. Ich gebe das Telefon an removeNonNumbers :, das den geänderten NSString * zurückgibt. I Dereferenzieren Sie den von removeNonNumber zurückgegebenen Zeiger und weisen Sie den Wert dem Telefon zu.
Wie Sie sagen, ich wahrscheinlich nicht verstehen, Objective-C-Objekte, die gut. Ich bin mir ziemlich sicher, dass das in C++ oder C funktionieren würde, aber ich verstehe nicht, warum es hier nicht funktioniert! Vielen Dank im Voraus für Ihre Hilfe!