2012-01-07 1 views
0

У меня есть IBAction, и это связано с кнопкой в ​​.xib. Но для действия o нужен этот код;IBAction, связанный с кнопкой, но нуждающийся в пустоте

- (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 
} 
+4

void и IBAction - это то же самое. IBAction - это всего лишь маркер для файла заголовка, чтобы сообщить IB, что действие может быть связано с методом. –

ответ

1

IBActionIBOutlet) просто используется, чтобы Xcode в Interface Builder (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. ;)