我有NSMutableArray
个UILabels
,我想通过单步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]]];
}
}
任何帮助都会非常感激,因为我一直在研究和调试几个小时没有修复:(
答案 0 :(得分:2)
您没有初始化scrambledWordLabelArray。您需要添加以下行:
scramledWordLabelArray = [[NSMutableArray alloc] init];
旁注:
currentGameList和scrambledWordLabelArray是否总是具有相同数量的元素?你的&#39; for&#39; loop基于currentGameList中的元素数量,但您使用相同的索引从scrambledWordLabelArray中获取元素。
您发布的两个解决方案基本上都是相同的代码。