1

.txtファイルを読み取る配列があり、ボタンをクリックすると、.txtファイルの単語の1つでラベルが変更されますが、ラベルは変更されません。

これはコードです:

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

ボタンを押すとラベルが変わるようにするにはどうすればよいですか?どのファイルを使用しますか?

4

2 に答える 2

2

ここにいくつかのことがあります:

ファイルを配列に読み込む

さて、初心者のために、あなたは.txtファイルの内容を読んでいません。

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

これにより、1つの要素の配列が作成されます。その1つの要素は@"words.txt"です。.txtファイルの形式がわからないため、どのように読み込む必要があるかわかりません。これを行う方法については、arrayWithContentsOfFileを使用して読み込むテキストファイルをフォーマットする方法をご覧ください。

ボタンテキストの設定

randomLabelまた、ボタン内に含まれているラベルを実際に参照していることを確認する必要があります。そうしないと、ボタンのテキストが変更されません。通常、ボタンの場合、次の方法を使用してタイトルを変更します。

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

したがって、あなたのインスタンスでは、次のようになります。

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

コードは実際に呼び出されていますか?

trueと評価される再確認sender == self.button(読みやすさと明確さのために、私は使用します[sender isEqual:self.button])。デバッガーを使用してコードをステップ実行し、その特定のコードが呼び出されているかどうかを確認します。これを実現する方法については、 http://mobile.tutsplus.com/tutorials/iphone/xcode-debugging_iphone-sdk/を参照してください。

于 2012-12-04T14:46:25.823 に答える
0

使ってみてください

  • (id)initWithContentsOfFile:(NSString *)aPath
于 2012-12-04T14:46:17.667 に答える