개발을 위해 cocos2d를 사용하고 있습니다. 맞춤형 버튼 클래스를 래핑하려고했습니다. 단추가 할당 된 선택기에 응답하려고 할 때 NSInvocation을 사용했습니다. MyButton은 이와 같이 작동합니다.NSInvocation이 2 차원 인디스 인수로 자체를 전달해야합니까?
if(target && sel) {
sig = [target methodSignatureForSelector:sel];
invocation_ = nil;
invocation_ = [NSInvocation invocationWithMethodSignature:sig];
[invocation_ setTarget:target];
[invocation_ setSelector:sel];
[invocation_ setArgument:&self atIndex:2];
[invocation_ retain];
}
나는 SEL이 같은 함수를 통과했다 :
- (void)onButtonClicked:(id)sender;
내 질문은 : MyButton에의 구현이 줄 [invocation_ setArgument:&self atIndex:2];
을 추가하는 것이 필요합니까? NSInvocation Class Reference
하면 해당 주소 : 여기에 IOS 문서에 따라 때문에 나는이 질문이
이다
지수를 0과 1 숨겨진 인수 자체 각각 _cmd, 를 나타냅니다; setTarget : 및 setSelector : 메소드를 사용하여이 값을 직접 설정해야합니다. 일반적으로 메시지에 전달 된 인수 에 인덱스 2 이상을 사용합니다.
setTarget을 호출 할 때 자체가 전달 된 것처럼 보입니다. 즉, & 자체 인수는 setArgument 메서드에서 전달 될 필요가 없습니다.
감사
이 컨텍스트에서 '자체'란 무엇입니까? 호출은 어디에서 생성됩니까? –
@JoshCaswell 자신이 구현 한 CCNode의 하위 클래스 인 MyButton입니다. 문맥에서, self는 버튼을 "자기 자신"을 "발신자"로 간주하는 것을 의미합니다. – analysiser