Objective-cの配列内のポインターに関連する問題に遭遇しました。
私がやろうとしているのは、NSArray内のポインターを取得し、それらをメソッドに渡してから、戻り値を元のポインター(配列に属するポインター)に戻すことです。
私がCとC++から知っていることに基づいて、配列内のポインターを逆参照することにより、それらが指す値を変更できるはずです...これが私が使用しているコードですが、機能していません(値の電話NSLog出力に基づいて変更されないことを指します)。
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
そして、NSString*を渡すメソッドシグネチャは次のとおりです。
- (NSString*) removeNonNumbers: (NSString*) string;
ご覧のとおり、phoneNumbers内の各NSString*を変数phoneで繰り返し処理しています。電話をremoveNonNumbers:に渡します。これにより、変更されたNSString*が返されます。次に、removeNonNumberから返されたポインターを逆参照し、値を電話に割り当てます。
お分かりのように、私はおそらくObjective-Cオブジェクトをあまりよく理解していません。これはC++またはCで機能すると確信していますが、なぜここで機能しないのかわかりません。よろしくお願いします!