4

私は自分のレーベルに接続しています:

@property (weak) IBOutlet NSTextField *scoreBox;

正しく、次のようにアクセスしようとしています:

void namedfunction(button) {

    if (button == button) {
        score = score + 100;
        [scoreBox setIntValue:score];
      // ^ error
    }
}

そして、私はこのエラーが発生しています:

AppDelegate.m:52:10: 宣言されていない識別子 'scoreBox' の使用

私は何を間違っていますか?

4

1 に答える 1

5

使用する

[_scoreBox setIntValue:score];

または

[self.scoreBox setIntValue:score];

* : のように、同じボタンを比較して終了していることも確認してくださいbutton==button

編集2:

あなたのコードは次のとおりです。

int perus(int nappi){

}

次のように変更します。

- (NSInteger *)perus:(NSInteger *)nappi{
    //all should do inside, rest are OK.
}

編集:

ここでこれを見つけたので、次のことについてはわかりません

*このような場合は、C 関数を使用する代わりに obj-c メソッドに切り替えることをお勧めします。

AC関数はまさにそれであり、他には何も付けられていないコードのブロックです。インスタンス変数は、各コントローラー オブジェクトにアタッチされます。そのため、printChatter() を呼び出すときに、使用する Controller のインスタンスを知る方法はありません。関数にオブジェクト変数を追加できます。

void namedfunction(const void *button, const void *appDele){
    NSTextField *myButton=[appDele scoreBox];
    ....
}

于 2013-03-29T18:36:05.543 に答える