Axu*_*aja 4 c++ macos cocoa function objective-c
我与我的标签有关:
@property (weak) IBOutlet NSTextField *scoreBox;
Run Code Online (Sandbox Code Playgroud)
正确的,我正试图像这样访问它:
void namedfunction(button) {
if (button == button) {
score = score + 100;
[scoreBox setIntValue:score];
// ^ error
}
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
AppDelegate.m:52:10:使用未声明的标识符'scoreBox'
我究竟做错了什么?
使用
[_scoreBox setIntValue:score];
Run Code Online (Sandbox Code Playgroud)
要么
[self.scoreBox setIntValue:score];
Run Code Online (Sandbox Code Playgroud)
*同时检查您是否最终比较相同的按钮,如:button==button.
编辑2:
因为你的代码是:
int perus(int nappi){
}
Run Code Online (Sandbox Code Playgroud)
将其更改为:
- (NSInteger *)perus:(NSInteger *)nappi{
//all should do inside, rest are OK.
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我不确定这里发现的以下内容
*我建议你切换到obj-c方法,而不是使用C函数来做这种事情.
AC函数只是一个代码块没有附加到其他任何东西.您的实例变量附加到每个Controller对象.因此,当您调用printChatter()时,无法知道要使用哪个Controller实例.您可以在函数中添加一个对象变量:
void namedfunction(const void *button, const void *appDele){
NSTextField *myButton=[appDele scoreBox];
....
}
Run Code Online (Sandbox Code Playgroud)