2015-04-11 2 views
0

У меня есть метод в другом классе, и я называю этот метод, как этотPass объект от performSelector

[captureView performSelector:@selector(startRecording) withObject:nil afterDelay:1.0]; 

Но теперь хочу передать объект этого метода, так что я знаю, что я хочу, чтобы изменить его к этому:

[captureView performSelector:@selector(startRecording) withObject:assest afterDelay:1.0]; 

Но если мой метод startRecording выглядит следующим образом

- (bool) startRecording{ 

Что я могу изменить это, чтобы использовать переменный актив в этом новом методе?

Спасибо за помощь :)

+1

Внушение - используйте 'dispatch_after 'для вызова метода непосредственно вместо использования' performSelector: withObject: afterDelay: '. Намного легче читать и отлаживать. – rmaddy

ответ

3

Документация performSelector:withObject:afterDelay:,»... селектор, который идентифицирует метод для вызова. Метод не должен иметь существенное значение, возвращаемое и должен принимать один аргумент типа идентификатора , или никаких аргументов. "

Таким образом, ваш метод не может возвращать BOOL, и она должна выглядеть так,

- (void) startRecording:(id) obj{ 
    ... 
} 

Кроме того, необходимо добавить двоеточие ваше имя селектора в performSelector:@selector(startRecording:)

Смежные вопросы