2013-07-07 3 views
2

Я относительно новичок в использовании селекторов, поэтому играю с ним, я не хочу передавать селектору какого-либо объекта, вместо этого он предназначен только для того, чтобы класс обновил сам. Я объявляю их как любой другой метод, но только когда он принимает параметр, он работает, почему это так?Селекторы - мне всегда нужно передать им объект?

//This works  
- (void) updateButtonImageState:(id)object; 
// Calling it 
[cell performSelector:@selector(updateButtonImageState:) withObject:@"object"]; 

-

//This crashes 
//Declaring the selector 
- (void) updateButtonImageState; 
// Calling it 
[cell performSelector:@selector(updateButtonImageState:)]; 

ответ

3

Вы не должны использовать двоеточие в конце имени селектора затем:

[cell performSelector:@selector(updateButtonImageState)]; 
+0

вы должны также объявить метод без двоеточия и аргумента. –

+0

Я думаю, автор уже сделал это - (void) updateButtonImageState; – Tala

+0

О, извините, я пропустил это. –

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