如何在NSMutableArray中更改String的值?

时间:2012-02-04 11:36:12

标签: objective-c ios nsstring nsmutablearray

我有一个可变的字符串数组。对于这个例子,假设其中有2个字符串。

我想要做的操作是获取第一个字符串并将第二个字符串的值赋给它。

我正在尝试这样的事情:

- (void) someAction {
    NSMutableArray * array = [[NSMutableArray alloc] initWithObjects: string1, string2, nil];
    NSString * firstString = [array objectAtIndex:0];
    NSString * secondString = [array objectAtIndex:1];
    firstString = secondString;
}

但这种方法似乎不起作用。在我记录这两个字符串后,它们在操作后不会改变。

请告知。

1 个答案:

答案 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
}