我需要更改已放入 中的项目的值NSMutableArray
,而实际上不知道它是什么变量。那可能吗?在 C 中,我相信这可以使用指针来完成
int i = 0;
int *j = &i;
*j = 5;
NSLog (@"'%d'",i); // Prints '5'
我如何将它翻译成Objective C?因此,如果我有 2 个 NSStrings 放入 NSMutableArray:
NSString *text1 = @"Hello";
NSMutableString *text2 = @"World";
NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:text1,text2,nil];
然后过一段时间
[arr objectAtIndex:1] = @"Everyone";
NSLog (@"'%@'",text2); // I want this to print 'Everyone'
我该怎么做?此语法在最后一个代码块的第一行给出错误Expression is not assignable
。
如果我稍微改变一下,让它看起来更像第一个代码块中的 C 代码:
NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:&text1,&text2,nil];
和
*[arr objectAtIndex:1] = @"Everyone"
Implicit conversion of an indirect pointer to an Objective-C pointer to 'id' is disallowed with ARC
我在第一行和Assigning to 'id' from incompatible type 'NSString *'
第二行收到 ARC 错误。我已经尝试了一些其他的细微调整,但它们都抛出了一些错误。
显然我做的不对,但我已经没有想法了。
编辑:它认为我正在尝试创建一个新字符串并替换我之前在索引 1 处的字符串。这不是我想要做的。我基本上是在尝试使用数组来更改变量的值,而不必使用变量的名称(在我的实际项目中,当我需要更改它时,我不会知道它的名称是什么)。