3

我有一个NSMutableArray完整的UILabels,我想通过逐步修改它们的文本属性array。我知道生成要分配给标签的文本的函数或函数不是问题,UILabels因为我已经在数组之外对其进行了测试,并且工作正常。UILabel在数组内部时,我似乎无法修改要修改的文本属性。

我的数组填充如下:

NSMutableArray *scrambledWordLabelArray;

-(void)initUIArrays {
    [scrambledWordLabelArray insertObject:ScrambledWordLabel1 atIndex:0];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel2 atIndex:1];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel3 atIndex:2];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel4 atIndex:3];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel5 atIndex:4];
    [scrambledWordLabelArray insertObject:ScrambledWordLabel6 atIndex:5];
}

然后一旦视图加载它应该将标签更改为另一个函数生成的字符串:

- (void)viewDidLoad
{
    [super viewDidLoad];   
    [self initUIArrays];

    currentGameList = [self GetWordList:[self LoadWordlist]];

    for (NSUInteger i = 0; i < [currentGameList count]; i++) {

对于这一部分,我找到了两种解决方案,但都不适合我......

解决方案1:

         UILabel *temp = [scrambledWordLabelArray objectAtIndex:i];
         temp.text = [self ScrambleWord:[currentGameList objectAtIndex:i]];

解决方案2:

         [[scrambledWordLabelArray objectAtIndex:i] setText:[self ScrambleWord:[currentGameList objectAtIndex:i]]];
    }
}

任何帮助都将不胜感激,因为我已经研究和调试了几个小时而没有修复:(

4

1 回答 1

2

您不初始化 scrambledWordLabelArray。您需要添加以下行:

scramledWordLabelArray = [[NSMutableArray alloc] init];

附带说明:

currentGameList 和 scrambledWordLabelArray 是否总是具有相同数量的元素?您的“for”循环基于 currentGameList 中的元素数量,但您使用相同的索引从 scrambledWordLabelArray 中获取元素。

您发布的两个解决方案基本上是相同的代码。

于 2012-10-14T06:16:20.117 回答