2012-04-03 3 views

답변

1

:

performSelector : 방법을 사용하면 런타임까지 결정되지 않은 메시지를 보낼 수 있습니다

긴 이야기 :

당신은 객체에 메시지를 보낼 수 있습니다 객체가이 특정 메소드를 구현하는지 여부에 대한 사전 지식없이. 예를 들어 :

NSString *astring = @"test"; 

[test dance]; // Doesn't compile 
[test performSelector:@selector(dance)]; // Doesn't make sense but compiles 
+0

고맙습니다. 그게 말이 되네. 메소드를 구현하는 객체에서 performSelector를 어디에서 사용할 것인지 예를 들어 주시겠습니까? 예를 들어 – learner2010

+1

당신이 백그라운드에서 방법을 실행하려는 : '[자기 performSelectorInBackground : @selector (MyMethod라는) withObject : 무기 호] 답장을' – Alladinian

+0

감사합니다. 그래서 언제 performSelector를 그냥 메서드를 호출하는 것에 비해 사용합니까? – learner2010

0

AFAIK, 선택기를 사용하여 우리는 자바, C#을에서했던 것과 callback method를 선언하는 방법입니다 ... 비동기 계산을 할 라이브러리 A를 개발하고 그 결과 때마다를 반환한다고 가정하자 끝났어. 개발 시간에 계산을 완료 할 때마다 호출해야하는 콜백 메소드를 알지 못합니다. 따라서 라이브러리에 selector을 입력 매개 변수로 가져오고 나중에 performSelector을 사용하여 콜백 메소드를 호출 할 수 있습니다.

희망이 도움이됩니다.

관련 문제