1

받는 메시지를 전달하는 개체가 있습니다. forwardInvocation을 사용하여 다른 객체로 전달하는 기능을 구현하지 않습니다. 그러나 methodSignatureForSelector은 프로그램 구성 방식으로 인해 특정 시간에 항상 유효한 메서드 서명을 반환하지는 않습니다. 누락 된 메소드 서명에서 생성 된 예외를 삼키는 방법은 무엇입니까? doesNotRecognizeSelector 무시는 작동하지 않습니다. 감사.Swallow가 NSInvocation의 forwardIdocation 호출에서 예외를 인식하지 못했습니다.

답변

4

void을 반환하는 메소드의 서명과 같은 더미 시그니처 (예 : [email protected]:)가 있더라도 forwardInvocation:에 도달하면 아무 것도하지 않는 것을 기억해야합니다.

+0

훌륭한 작품 ... 감사합니다. – user26691

+0

동일한 예제를 만들기 위해 열심히 노력한 예제 코드를 게시 해 주실 수 있습니까? – unmircea

+1

@unmircea : 기본적으로, 당신의'methodSignatureForSelector :'메소드에서, 선택자에 대한 호출을 삼키기로 결정했지만 서명이 없으면'[NSMethodSignature signatureWithObjCTypes : "v @ :"]'를 리턴하십시오. 그런 다음'forwardInvocation :'메소드에서'methodSignatureForSelector :'에서 사용한 삼키는 것에 대한 선택자와 동일한 조건을 확인하고, 충족되면 반환하고 더 이상 처리하지 않습니다. – newacct