我有IBAction,并且它与.xib中的按钮相关联。但是对于需要此代码的操作;
- (void) reportScore: (int64_t) score forCategory: (NSString*) category
{
GKScore *scoreReporter = [[GKScore alloc] initWithCategory:category];
scoreReporter.value = counter;
[scoreReporter reportScoreWithCompletionHandler: ^(NSError *error)
{
[self callDelegateOnMainThread: @selector(scoreReported:) withArg: NULL error: error];
NSLog(@"Nice: %d", counter);
}];
}
有没有办法将我的按钮与虚空连接?或类似的东西?
- (IBAction) subScore {
//data
}
答案 0 :(得分:1)
IBAction
(和IBOutlet
)仅用于让XCode的界面生成器(IB
)知道存在一个函数。如果你想使用void
,好的,但是你没有得到Interface Builder中显示的功能。
IBAction 是一个特殊关键字,仅用于告诉Xcode( Interface Builder )将方法视为目标 - 操作连接的操作。 IBAction被定义为 void 。
IBOutlet 是一个特殊的关键字,仅用于告诉Xcode( Interface Builder )将对象视为插座。它实际上被定义为无,因此它在编译时没有任何影响。
您可以设置功能(使用void
定义,并且注意IBAction
也可以,但不必在此处)到您的按钮目标,如下所示:
[yourButton addTarget:self action:@selector(yourButtonFunction:) forControlEvents:UIControlEventTouchUpInside];
通常,如果您以编程方式创建代码(不使用XCode的Interface Builder),则不再需要IBOutlet
或IBAction
。 ;)