我有一个可变的字符串数组。对于这个例子,假设其中有2个字符串。
我想要做的操作是获取第一个字符串并将第二个字符串的值赋给它。
我正在尝试这样的事情:
- (void) someAction {
NSMutableArray * array = [[NSMutableArray alloc] initWithObjects: string1, string2, nil];
NSString * firstString = [array objectAtIndex:0];
NSString * secondString = [array objectAtIndex:1];
firstString = secondString;
}
但这种方法似乎不起作用。在我记录这两个字符串后,它们在操作后不会改变。
请告知。
答案 0 :(得分:7)
您无法更改数组中的字符串。
该数组包含指向字符串的指针,当您将一个字符串分配给另一个字符串时,您只是交换指针,而不是更改数组指向的字符串对象。
在数组中交换字符串需要做的是:
- (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
}