0

まず、私は iPhone アプリケーション開発の初心者なので、すぐに理解できない場合はご容赦ください。

文スタイルのテキストで複数の変数を呼び出し、変数の間に他の単語を入れる方法について簡単な質問があります。

私は iPhone アプリケーション開発を独学で学んでいるので、このコードは Apple の「初めての iOS アプリ」というタイトルの指示に基づいており、コードを微調整してよりよく学習しています。

アプリの基本的なレイアウトは、「名前」と「職業」というラベルの付いた 2 つのテキスト フィールドです。その下には、テキスト領域 (ラベル) と、テキスト フィールド情報を送信するためのボタンがあります。ユーザーが名前と職業を入力して送信すると、アプリケーションはこれらの変数を「こんにちは、私の名前は [名前] で、私は [職業] です」という文に配置する必要があります。テキストエリア(ラベル)に文章を表示します。

これは私がこれまでに持っているものです:

- (IBAction)changeGreeting:(id)sender {

self.userName = self.textField.text;

NSString *nameString = self.userName;
if ([nameString length] == 0) {
    nameString = @"Name";
}
    NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, my name is %@,", nameString];
self.label.text = greeting;

self.userOccupation = self.textField.text;

NSString *occupationString = self.userOccupation;
if ([occupationString length] == 0) {
    occupationString = @"Occupation";
}
NSString *description = [[NSString alloc] initWithFormat:@" and I'm a %@.", occupationString];
self.label.text = description;
}

- (BOOL)textFieldShouldReturn:(UITextField *)theTextField {
if (theTextField == self.textField) {
    [theTextField resignFirstResponder];
}
return YES;
}
@end

アプリを実行し、名前「ジョン」と職業「開発者」を送信すると、出力文に「こんにちは、私の名前はジョンです」は含まれず、「そして私は開発者です」のみが出力されます。

各変数が文内の目的の場所に表示され、「こんにちは、私の名前はジョンです。私は開発者です」と表示されるように、変数を取得して呼び出す方法は? 中断された1つの文で?

4

2 に答える 2

1

名前と職業を取得するために同じテキストフィールドを使用していますか? それは変です。

とにかく、同じラベルを使用して文を表示しているため、「こんにちは、私の名前はジョンです」を「そして私は開発者です」に置き換えています。この行で:

NSString *description = [[NSString alloc] initWithFormat:@" and I'm a %@.", occupationString];
self.label.text = description;

最後の行「self.label.text = description;」を置き換えます。atbebtg によって提案された行を使用すると、目的の結果が得られるはずです。

self.label.text = [NSString stringWithFormat:@"%@ %@",greeting, description];

ちなみに、ARC を使用していない場合は、alloc で作成した変数をすべて解放することを忘れないでください。

于 2012-06-26T21:38:42.497 に答える
0

self.label.textの値を説明で上書きしたため、説明の値のみが表示されます。

この行を置き換えます

self.label.text = description;

self.label.text = [NSString stringWithFormat:@"%@ %@",greeting, description];

私の構文は少しずれているかもしれません。

于 2012-06-26T21:37:18.583 に答える