Mat*_*t.M 6 pointers objective-c nsarray dereference
我遇到了与objective-c中的数组中的指针相关的问题.
我正在尝试做的是获取NSArray中的指针,将它们传递给方法,然后将返回的值分配回原始指针(属于该数组的指针).
根据我从C和C++中所知,通过解除引用数组中的指针,我应该能够更改它们指向的值...这是我正在使用的代码,但它不起作用(价值电话)指向永远不会根据NSLog输出更改).
NSArray *phoneNumbers = [phoneEmailDict objectForKey:@"phone"];
for (NSString* phone in phoneNumbers) {
(*phone) = (*[self removeNonNumbers:phone]);
NSLog(@"phone:%@", phone);
}
Run Code Online (Sandbox Code Playgroud)
这是我传递NSString*的方法签名:
- (NSString*) removeNonNumbers: (NSString*) string;
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用可变电话迭代phoneNumbers中的每个NSString*.我通过手机删除NonNumbers :,它返回修改后的NSString*.然后取消引用从removeNonNumber返回的指针并将值赋给phone.
你可以说,我可能不太了解Objective-C对象.我很确定这可以在C++或C中使用,但我不明白为什么它在这里不起作用!在此先感谢您的帮助!
Dav*_*ong 13
是的,那不行.你需要一个NSMutableArray:
NSMutableArray * phoneNumbers = [[phoneEmailDict objectForKey:@"phone"] mutableCopy];
for (NSUInteger i = 0; i < [phoneNumber count]; ++i) {
NSString * phone = [phoneNumbers objectAtIndex:i];
phone = [self removeNonNumbers:phone];
[phoneNumbers replaceObjectAtIndex:i withObject:phone];
}
[phoneEmailDict setObject:phoneNumbers forKey:@"phone"];
[phoneNumbers release];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9982 次 |
| 最近记录: |