更改标签的文字

时间:2012-12-04 14:32:19

标签: objective-c arrays button ios6 label

我有一个读取.txt文件的数组,当你单击一个按钮时,标签会改变.txt文件中的一个单词,但标签不会改变。

这是代码:

if(sender == self.button) {
    NSArray *words = [[NSArray alloc] initWithObjects:@"words.txt", nil];
    [randomLabel setText:[words objectAtIndex:random() % [words count]]];
}

当我按下按钮时,我应该怎么做才能更改标签? 我用什么文件?

2 个答案:

答案 0 :(得分:2)

这里有一些事情:

将文件读入数组

嗯,对于初学者,你不是在读取.txt文件的内容。

NSArray *words = [[NSArray alloc] initWithObjects:@"words.txt", nil];

这将创建一个1元素数组,其中一个元素为@"words.txt"。我不知道.txt文件的格式,因此我无法确定您是如何加载它的。请参阅How do I format a text file to be read in using arrayWithContentsOfFile了解如何进行此操作。

设置按钮文本

此外,您需要确保randomLabel实际引用按钮中包含的标签,否则按钮文本不会更改。通常,对于按钮,您可以使用以下方法更改标题:

- (void)setTitle:(NSString *)title forState:(UIControlState)state

所以在你的实例中,它是:

NSString* newTitle = [words objectAtIndex:random() % [words count]];
[self.button setTitle:newTitle forState:UIControlStateNormal];

是否实际调用了代码?

仔细检查sender == self.button评估为真(为了便于阅读和清晰,我使用[sender isEqual:self.button])。使用调试器逐步执行代码,以查看是否正在调用该特定代码段。请参阅http://mobile.tutsplus.com/tutorials/iphone/xcode-debugging_iphone-sdk/了解如何实现这一目标。

答案 1 :(得分:0)

你应该尝试使用

  • (id)initWithContentsOfFile:(NSString *)aPath