0

私は iPhone 向けの開発を始めたばかりで (私はかなり長い間 Android 開発者でした)、テキスト ラベルのテキストを変更するという非常にありふれた単純な作業で問題が発生しています。Apple 開発者向けのチュートリアルに従いましたが、NSString の initWithFormat メソッドに問題があります。

問題はこの方法にあります:

-(IBAction)changeGreeting:(id)sender {

    self.userName = self.textField.text;

    NSString *nameString = self.userName;
    if ([nameString length] == 0) {
        nameString = @"World";
    }

    NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString];
    self.label.text = greeting;
}

プロジェクトを実行すると、textField に値があるかどうかに関係なく、ラベルは常に Hello に設定されます...

メソッドの最後の行を次のように変更すると:

self.label.text = self.userName;

または:

self.label.text = nameString;

ラベルには、initWithFormat 呼び出しで %@ に挿入する必要がある値が表示されます。注: stringWithFormat も使用してみましたが、同じ問題が発生します。

ありがとう。

4

2 に答える 2

2

ラベルが狭すぎます。IBにあると仮定して、IBを開いてラベルを広くします。

于 2012-07-26T19:33:52.670 に答える
0

省略記号は、文字列がコンテナーに対して長すぎることを意味します。length プロパティをより大きな値に変更してみてください。

于 2012-07-26T19:35:04.973 に答える