objective-c에서 배열 내의 포인터와 관련된 문제가 발생했습니다.역 참조로 NSArray 내의 값을 변경 하시겠습니까?
내가 뭘하려는 것은 NSArray에서 포인터를 가져 와서 메서드에 전달한 다음 반환 된 값을 원래 포인터 (배열에 속한 포인터)에 다시 할당하는 것입니다.
내가 C 및 C++에서 알고있는 것을 바탕으로, 배열 내의 포인터를 역 참조함으로써, 포인터가 가리키는 값을 변경할 수 있어야합니다. 사용중인 코드는 다음과 같습니다. 그러나 작동하지 않습니다. (가치 전화는 NSLog 출력에 따라 절대 변경되지 않습니다). 변수 전화 PHONENUMBERS 내의 각는 NSString *을 통해 당신이 볼 수 있듯이
- (NSString*) removeNonNumbers: (NSString*) string;
, 내가 반복하고 여기
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
그리고
내가에있는 NSString *을 통과하고있는 메소드 서명입니다. 전화를 removeNonNumbers :로 전달하면 수정 된 NSString *이 반환됩니다. 그런 다음 removeNonNumber에서 반환 된 포인터를 역 참조하고 전화에 값을 할당합니다.여러분도 알다시피, Objective-C 객체를 잘 이해하지 못했을 것입니다. 나는 이것이 C++이나 C에서 작동 할 것이라고 확신하지만, 왜 여기서 작동하지 않는지 나는 알 수 없다! 도와 주셔서 미리 감사드립니다.