정보가 invocationWithMethodSignature
을 통해 이미 전달 된 경우 NSInvocation
개체에서 setSelector
메서드를 호출해야하는 이유를 이해할 수 없습니다. 우리가 [invocation setSelector:someSelector];
다시 [SomeObject instanceMethodSignatureForSelector: someSelector];
에 선택기를 통과NSInvocation 클래스에서 setSelector 메서드의 용도는 무엇입니까?
SEL someSelector;
NSMethodSignature *signature;
NSInvocation *invocation;
someSelector = @selector(sayHelloWithString:);
//Here we use the selector to create the signature
signature = [SomeObject instanceMethodSignatureForSelector:someSelector];
invocation = [NSInvocation invocationWithMethodSignature:signature];
//Here, we again set the same selector
[invocation setSelector:someSelector];
[invocation setTarget:someObjectInstance];
[invocation setArgument:@"Loving C" atIndex:2];
주의 사항 :
우리가 다음을 수행NSInvocation
객체를 생성합니다.
내가 누락 된 자료가 있습니까?
+1 - 이미 100 만 번도 묻지 않았으며 (응답 된) 질문을보기에 좋으며, 해독 할 수없는 인스턴트 메시지 전문 용어로 작성되지 않았습니다. :-) –
하나의 작은 점 :'signature = [SomeObject instanceMethodSignatureForSelector : someSelector];'는'signature = [[SomeObject class] instanceMethodSignatureForSelector : someSelector];이어야합니다. 또는 signature = [SomeObject methodSignatureForSelector : someSelector]; ' – Brynjar