我知道在obj-c中这是一个非常简单的事情,但我似乎无法找到任何地方(在这里或谷歌)如何做到这一点。基本上我只想用另一个替换一个数组值(值是一个NSString),所以像这样......
[sharedInstance.groundMap objectAtIndex:ii] = myImage;
但我得到一个错误表达式是不可分配的。我也试过......
[[sharedInstance.groundMap objectAtIndex:ii] setValue:(NSString*) myImage];
但这也给出了错误。
答案 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"]];