Я пытался выяснить, почему и как использовать performSelector. Я столкнулся с Apple Docs. Однако я не могу это полностью понять.Когда и почему использовать performSelector - iOS
Может ли кто-нибудь помочь мне объяснить это?
Я пытался выяснить, почему и как использовать performSelector. Я столкнулся с Apple Docs. Однако я не могу это полностью понять.Когда и почему использовать performSelector - iOS
Может ли кто-нибудь помочь мне объяснить это?
Из документации Apple:
в performSelector: метод позволяет отправлять сообщения, которые не являются не определены до момента выполнения
Longer история:
Вы можете отправлять сообщения на объекты без предварительного знания того, реализует ли этот объект этот конкретный метод. Например:
NSString *astring = @"test";
[test dance]; // Doesn't compile
[test performSelector:@selector(dance)]; // Doesn't make sense but compiles
AFAIK, используя селектор является способом объявить callback method
как то, что мы делали на Java, C#, ... Предположим, что вы разрабатываете библиотеки A, которые делают асинхронный исчисляют и возвращать результат всегда, когда это было сделано. Во время разработки вы не знаете, какой метод обратного вызова вы должны вызывать, когда делается расчет. Таким образом, вы можете сделать библиотеку в качестве входного параметра selector
и позже использовать метод performSelector
для вызова методов обратного вызова.
Надеюсь, это поможет.
спасибо .. thats имеет смысл .. вы могли бы привести мне пример того, где я бы использовал performSelector для объекта, который реализует метод? – learner2010
Например, если вы хотите выполнить метод в фоновом режиме: '[self performSelectorInBackground: @selector (myMethod) withObject: nil];' – Alladinian
спасибо за ответ. поэтому, когда я буду использовать performSelector по сравнению с просто вызовом метода? – learner2010