-3

IBOutletコード内の変数名と交換する文字列をキャストするのに問題があります。

IBOutlet UILabel後で同じ変数名をプログラムで作成することにより、ヘッダー ファイルで宣言されたan のインスタンスを参照しようとしています。

ただし、文字列をキャストしてIBOutlet UILabel変数名を試して代用すると、プログラムがクラッシュします。

以下の例で、何が起こっているのか、なぜ必要なのかを説明できれば幸いです。説明が少し不安定な場合は申し訳ありません-私は初心者です。

ヘッダー ファイルで宣言されている(以下の例で参照されている) をUILabel *tempLabelName同じように試して置き換えるように作成すると、プログラムがクラッシュします。IBOutlet UILabel *propertypropertyUseForNaming

for (int i = 0; int < 5; i++)
{    

    NSString *tempText = [[NSString alloc] initWithFormat:@"%d", [aReferenceObject[i] integerToDisplayAsText]];

    UILabel *tempLabelName = [NSString stringWithFormat:@"%@", [aReferenceObject[i] propertyUseForNaming]];

    [tempLabelName setText: tempText];

}

誰かが私を助けて、これを行う方法を説明したり、さらにアドバイスを提供したりできますか?

とても有難い。

4

1 に答える 1

2

UILabelは文字列ではなく、その逆も同様です。

UILabel *tempLabelName = [NSString stringWithFormat:@"%@", [aReferenceObject[i] propertyUseForNaming]];

文字列を作成し、それをUILabelのように処理しようとしていると言います。不可能だよ。XIB(またはプログラム)にUILabelを作成させる必要があります。その後、textプロパティを使用してテキストを設定できます。

ヘッダーファイル:

@property (nonatomic, retain) UILabel *label;

あなたのコードでは:

label.text = [NSString string...];
// OR
[label setText:str];

それにはもっとたくさんのことがあります(たとえば、プロパティを実装するために.mファイルにコードが必要であり、xibインスタンスをアウトレットに接続する必要もあります)が、これは誤解の本質です。

于 2012-11-12T20:29:25.327 に答える