0

코드 행은 완벽하게performSelector가 잘못된 인수를 던지는 이유는 무엇입니까?

[self explodeBomb:obj]; 

작동하지만 다음 줄로 교체하는 경우, 나는 이유는 알 수없는 선택 인와 더불어, NSInvalidArgument 예외를 얻을. 다음과 같이

[self performSelector:@selector(explodeBomb) withObject:obj ]; 

방법의 정의는 다음과 같습니다

내가 아는
-(void)explodeBomb:(SKNode *)bomb 

,이 근본적인 무언가를 이해하지 못하는 나를 수있다. 하지만 문제없이 직접 메서드를 호출 할 수있는 이유는 무엇입니까? performSelector을 사용하려고하면 불어납니다. 레코드의 경우 obj는 ID로 정의됩니다. 나는 explodeBomb의 서명을 변경하여 ID를 가져 와서 명시 적으로 메소드 내부에 캐스팅하려고 시도했지만 동일한 예외가 발생했습니다. 누구든지 내가 뭘 잘못하고 있는지 알아?

답변

3

는 사용 :하고 :

+0

감사를 지정해야하므로 인수를 가지고 explodeBomb 이후

[self performSelector:@selector(explodeBomb:) withObject:obj ]; 

아래 방법과 같이 쓰기 .. 와우 ... 나는 피곤하다. – user282172

+0

비록 객체를 가진 사실이 무효가 아니라고 생각할지라도 그것을 처리 할 것이지만 교훈은 고마워요. – user282172

+0

당신은 오신 것을 환영합니다. :-) – san