在obj-c中设置数组中的值

时间:2012-10-31 04:02:14

标签: objective-c ios nsarray

我知道在obj-c中这是一个非常简单的事情,但我似乎无法找到任何地方(在这里或谷歌)如何做到这一点。基本上我只想用另一个替换一个数组值(值是一个NSString),所以像这样......

[sharedInstance.groundMap objectAtIndex:ii] = myImage;

但我得到一个错误表达式是不可分配的。我也试过......

[[sharedInstance.groundMap objectAtIndex:ii] setValue:(NSString*) myImage];

但这也给出了错误。

3 个答案:

答案 0 :(得分:2)

首先,您的数组需要可变(即NSMutableArray的实例,而不仅仅是NSArray)。使用NSMutableArray,您可以执行此操作:

[sharedInstance.groundMap replaceObjectAtIndex:ii withObject:myImage];

如果你有最新的Xcode,你也可以使用array[index] = value语法。

答案 1 :(得分:1)

您需要使用NSMutableArray来设置值。使用replaceObjectAtIndex:withObject:方法或使用新的Objective-C语法:

[sharedInstance.groundMap replaceObjecAtIndex:ii withObject:myImage];

sharedInstance.groundMap[ii] = myImage;

既不适用于NSArray。仅NSMutableArray

答案 2 :(得分:0)

这是你可能想要的

[sharedInstance.groundMap replaceObjectAtIndex:11 withObject:[NSString stringWithFormat:@"test"]];