2012-06-27 2 views
-1

ClassA에서 Selector1이라는 메서드가 있습니다.NSInvocation 객체의 selector 속성으로 다른 클래스의 메서드를 설정할 수 있습니까?

클래스 B NSInvocation 개체를 만들고 개체 선택기로 Selector1을 설정하고 싶습니다. 이것이 가능한가? 나는 이것을 설정하는 적절한 방법을 모른다.

내가 ClassB가에서 사용하려고 코드는 다음과 같다 : 당신은 당신이 methodSignatureForSelector:에 전달 된 하나의 방법 만이 아니라 이름처럼 SEL 필요

NSMethodSignature *signature = [ClassA methodSignatureForSelector:@selector(Selector1:)]; 
NSInvocation *invocationToPass = [NSInvocation invocationWithMethodSignature:signature]; 
invocationToPass.target = self; 
invocationToPass.selector = Selector1; // How can I assign Selector1 from ClassA? 

답변

1

.

[invocationToPass setSelector:@selector(Selector1:)]; 

또한 콜론이 중요하다는 점을 알아야합니다. 메서드가 인수를 사용하지 않으면 이름은 Selector1이됩니다. 그것이 하나 인 경우, 이름은 Selector:입니다. @selector() 연산자에 정확한 이름을 입력해야합니다.