-1

我有一个名为 Letters 的 NSMutableArray,它包含 UIImageView 子类的实例。我正在尝试遍历它们并为它们分配新值

 for (int i=0 ;i<26;i++)
{
    [letters objectAtIndex:i] = [[typeLetters alloc]initWithManager:self atX:startX andY:startY withSideLenght:48 andName:[letterNames objectAtIndex:i] andPng:[letterNames objectAtIndex:i]];
}

但这不起作用。Xcode 说“无法分配给表达式”,但是当我尝试在数组之外为每个数组项单独分配新值时,它可以工作。你知道为什么会这样吗?

编辑:没关系。对不起。我应该更多地研究数组。

4

3 回答 3

1

您正在寻找的方法是.-

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;

for (int i=0 ;i<26;i+=1) {
    [letters replaceObjectAtIndex:i withObject:[[typeLetters alloc]initWithManager:self atX:startX andY:startY withSideLenght:48 andName:[letterNames objectAtIndex:i] andPng:[letterNames objectAtIndex:i]]];
}
于 2013-09-23T22:19:36.777 回答
0

您需要使用replaceObjectAtIndex:withObject:,但您应该真正使用新的数组语法:

letters[i] = ...
于 2013-09-23T22:18:53.510 回答
0

数组表示法有效:letters[i] = blah

但是您可能应该使用快速枚举:

for(id letter in letters) { letter = blah; }

于 2013-09-23T22:21:08.470 回答