我有一个可变的字符串数组。对于这个例子,假设其中有 2 个字符串。
我想做的操作是获取第一个字符串并将第二个字符串的值赋给它。
我正在尝试这样的事情:
- (void) someAction {
NSMutableArray * array = [[NSMutableArray alloc] initWithObjects: string1, string2, nil];
NSString * firstString = [array objectAtIndex:0];
NSString * secondString = [array objectAtIndex:1];
firstString = secondString;
}
但是这个方法好像不行。正如我记录这两个字符串后,它们在操作后不会改变。
请指教。
最佳答案
您不能像那样更改数组中的字符串。
数组包含指向字符串的指针,当您将一个字符串分配给另一个字符串时,您只是在交换指针,而不是更改数组指向的字符串对象。
交换数组中的字符串需要做的是:
- (void) someAction {
NSMutableArray * array = [[NSMutableArray alloc] initWithObjects: string1, string2, nil];
NSString * secondString = [array objectAtIndex:1];
[array replaceObjectAtIndex:0 withObject:secondString]; //replace first string with second string in the array
}
关于objective-c - 如何更改 NSMutableArray 中 NSString 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9140554/