0

このステートメントで初期化したNSArraymade of s があります (実際のポインターは .h ファイルに作成されます)。UILabel

interLabels = [NSArray arrayWithObjects:inter1,inter2,inter3, nil];

後でIBAction、ボタンがクリックされたときに応答してラベルの配列を更新するメソッドがあります。

-(IBAction)intervalButton:(id)sender{
    int count = 0;
    double val[3];
    if(count < 3){
        val[count] = number;
        [interLabels objectAtIndex:count].text = [NSString stringWithFormat:@"%.2f", val[count]];
        count++;
    }
}

しかし、オブジェクト[interLabels objectAtIndex:count]として認識されていないようUILabelで、プロパティ「テキスト」がオブジェクト タイプ「id」に見つからないというコンパイラ エラーが発生します。これをコンパイラに認識させるにはどうすればよいUILabelですか? これは型キャストで解決できる問題ですか?

4

2 に答える 2

1

objectAtIndex は、タイプ「id」の参照を返します。コンパイラ/IDE がテキスト プロパティを認識する前に、UILabel にキャストする必要があります。

例 ((UILabel*) [interLabels objectAtIndex:count]).text = ...

于 2013-11-04T20:12:56.857 に答える