나는 [self delegate]
을 통해 얻을 수있는 객체에 대한 메소드를 호출하려고합니다. 클래스를 가져 와서 정상적으로 호출 할 수 있도록 클래스가 무엇인지 알지만 내 클래스를 가져올 필요가없는 performSelector:
을 사용할 수도 있습니다. 메서드에 매개 변수를 전달할 필요가 없습니다. 그리고 예, 나는 this을 읽었습니다. 이 경우 어느 쪽이 바람직합니까?performSelector를 사용해야합니까? 또한 메서드를 정상적으로 호출 할 수 있습니까?
2
A
답변
2
직접 메서드를 호출하면 더 쉽게 읽을 수 있습니다. performSelector:
은 더 높은 주문 메시지가 필요할 때 예약해야합니다.
엄밀히 말하면, 메시지 발송은 정적이 아니라 동적이기 때문에 클래스를 가져올 필요가 없습니다. 객체가 선택기에 응답하지 않을 수 있다는 컴파일 타임 경고가 표시됩니다.
0
일반적으로 performSelector:
과 같은 반사 작업은 직접 작업보다 효율적이지 않습니다. 나는 objC에 익숙하지 않다는 것을 인정해야한다.
관련 문제
- 1. 변수를 사용하여 메서드를 호출 할 수 있습니까?
- 2. UIResponderStandardEditActions에서 select 메서드를 호출 할 수 있습니까?
- 3. 컨트롤러에서 Daemon 메서드를 호출 할 수 있습니까?
- 4. PHP __destruct() 메서드를 호출 할 수 있다고 믿을 수 있습니까?
- 5. 어떻게 속성 클래스가 Java에서 '부모'클래스의 메서드를 호출 할 수 있습니까?
- 6. 다른 창 컨텍스트에서 Javascript 메서드를 호출 할 수 있습니까?
- 7. finalizer는 다른 관리되는 클래스의 메서드를 호출 할 수 있습니까?
- 8. Ajax Javascript 메서드를 호출 할 수 없습니다.
- 9. JQuery에서 페이지 메서드를 호출 할 수 없습니까?
- 10. 사용자 정의 메서드를 호출 할 수 없습니다.
- 11. void를 반환하는 webservice의 비동기 메서드를 어떻게 호출 할 수 있습니까?
- 12. sharekit에서 공유가 끝나면 메서드를 호출 할 수 있습니까?
- 13. C 함수에서 Objective-C 메서드를 호출 할 수 있습니까?
- 14. .NET의 동적 메서드에서 내부 메서드를 호출 할 수 있습니까?
- 15. 플래시 무비에서 자바 클래스 메서드를 호출 할 수 있습니까?
- 16. 응용 프로그램에서 활동에 직접 메서드를 호출 할 수 있습니까?
- 17. 키 입력시 어떻게 메서드를 호출 할 수 있습니까?
- 18. 다른 메서드 내에서 정적 메서드를 호출 할 수 있습니까?
- 19. DLL을 통해 C++ 컴파일러 인라인 메서드를 호출 할 수 있습니까?
- 20. 어떻게 Perl 스칼라에서 메서드를 호출 할 수 있습니까?
- 21. Java 초급 질문 : 메서드를 내부에서 호출 할 수 있습니까?
- 22. 브라우저에서 URL을 호출하여 WSDL 메서드를 호출 할 수 있습니까?
- 23. asp.net MVC의 다른 컨트롤러에서 컨트롤러의 메서드를 호출 할 수 있습니까?
- 24. 클래스의 main() 메서드를 java의 다른 클래스에서 호출 할 수 있습니까
- 25. 다른 스레드에서 잠긴 개체의 메서드를 호출 할 수 있습니까?
- 26. 가상 메서드를 호출 할 클래스를 지정할 수 있습니까?
- 27. 어떻게 다른 파일에서 뷰 메서드를 호출 할 수 있습니까?
- 28. finalize 메서드를 int 또는 vector로 호출 할 수 있습니까?
- 29. 단추를 클릭하여 의도를 통해 메서드를 호출 할 수 있습니까?
- 30. C# winforms에서 Javascript 메서드를 호출 할 수 있습니까?
클래스를 가져 와서 직접 메시지를 보내는 것이 컴파일 시간 유형/인터페이스 정의 검사이며 outis에서 설명한 것보다 효율적입니다. performSelector는 일반적으로 대상 클래스에 대해 알지 못하는 제네릭 클래스에 사용되며 메서드가 있는지 확인하기 위해 프로그래머에게 의존합니다. 즉, UITimer, UIButton 등. – gnasher
또한 런타임 오류가 발생하면 해당 대상에서'- (BOOL) respondsToSelector : @selector (mySelector)'를 호출하여 특정 선택기에 대한 응답을 확인할 수 있음을 언급해야합니다. – katzenhut