Tôi đã gặp một vấn đề liên quan đến con trỏ trong mảng trong mục tiêu-c.Thay đổi các giá trị trong NSArray bằng dereferencing?
Những gì tôi đang cố gắng thực hiện là lấy con trỏ trong một NSArray, chuyển chúng vào một phương thức, và sau đó gán giá trị trả lại cho con trỏ ban đầu (con trỏ thuộc về mảng).
Dựa trên những gì tôi biết từ C và C++, bởi dereferencing các con trỏ trong mảng, tôi sẽ có thể thay đổi giá trị mà chúng trỏ đến ... Đây là mã tôi đang sử dụng, nhưng nó không hoạt động (giá trị điện thoại trỏ đến không bao giờ thay đổi dựa trên đầu ra NSLog).
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
Và đây là chữ ký phương pháp tôi đang đi qua các NSString * để:
- (NSString*) removeNonNumbers: (NSString*) string;
Như bạn thấy, tôi lặp lại qua từng NSString * trong PHONENUMBERS với các điện thoại khác nhau. Tôi vượt qua điện thoại để xóaNonNumbers :, trả về NSString đã sửa đổi *. Sau đó, dereference con trỏ trở về từ removeNonNumber và gán giá trị cho điện thoại.
Như bạn có thể nói, tôi có thể không hiểu đối tượng Objective-C tốt. Tôi khá chắc chắn điều này sẽ làm việc trong C + + hoặc C, nhưng tôi không thể thấy lý do tại sao nó không hoạt động ở đây! Cảm ơn trước sự giúp đỡ của bạn!