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.
}

编辑:

我不确定以下内容,因为在这里找到了这个

*我建议你切换到 obj-c 方法,而不是使用 C 函数来处理这类事情。

A C function is just that, a block of code not attached to anything else. Your instance variable is attached to each Controller object. So when you call printChatter() there is no way to know which instance of Controller you want to use. You could add an object variable to your function:

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

于 2013-03-29T18:36:05.543 回答