在NSArray中修改UILabels的文本属性

时间:2012-10-14 06:07:57

标签: objective-c ios nsarray uilabel

我有NSMutableArrayUILabels,我想通过单步array来修改它们的text属性。我知道UILabels或生成我想要分配给标签的文本的函数不是问题,因为我在数组之外测试它并且它工作正常。当UILabel在数组内部时,我似乎无法修改text属性。

我填充的数组如下:

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]]];
    }
}

任何帮助都会非常感激,因为我一直在研究和调试几个小时没有修复:(

1 个答案:

答案 0 :(得分:2)

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

scramledWordLabelArray = [[NSMutableArray alloc] init];

旁注:

currentGameList和scrambledWordLabelArray是否总是具有相同数量的元素?你的&#39; for&#39; loop基于currentGameList中的元素数量,但您使用相同的索引从scrambledWordLabelArray中获取元素。

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