2012-09-18 5 views
0

이 방법을 사용하고 객체를 전달할 수 있습니까? 이 코드로,이 오류가 얻을 : 그것은 hideUpdateView 방법을 결코 도달하지iOS performSelector onThread with object

-[myApp hideUpdateView]: unrecognized selector sent to instance 0x8b6a880 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[myApp hideUpdateView]: unrecognized selector sent to instance 0x8b6a880' 

을 ...

코드 :

NSArray *array = [NSArray arrayWithObjects:@"1", @"2", nil]; 
[self performSelector:@selector(hideUpdateView) onThread:[NSThread mainThread] withObject:array waitUntilDone:YES]; 



- (void) hideUpdateView: (NSArray *) inputArray 
{ 
    int catCount = [[inputArray objectAtIndex:0] intValue]; 
    //hide it 
} 
+4

내가 잠시 동안 아이폰 OS 개발 떨어져있었습니다 (. 콜론은 선택의 이름의 일부입니다. 오브젝티브 C의 turorial을 읽어 보시기 바랍니다)하지만 @selector (hideUpdateView'해야합니다 :) '? – Pete

+0

물론 @Pete해야합니다. –

+0

@ H2CO3 차가움. 그리고 Obj-C의 라인을 2 년 동안 작성하지 않았습니다. 대신 포인트를 얻기 위해 답으로 넣어야했습니다. – Pete

답변

6

당신은 선택의 끝에서 콜론을 놓치고있어 이름.

[self performSelector:@selector(hideUpdateView:) onThread:[NSThread mainThread] withObject:array waitUntilDone:YES]; 
              ^
            Note the colon here 
+0

오, 남자들이 바보 같은 실수를 했어. 그게 그랬어. 따라서 호출하는 메소드에 매개 변수가있는 경우 ':'를 가져야합니다. 내 performSelector 호출의 대부분은 ':'이 없기 때문에 정상적으로 작동합니다. – boostedz06

+0

@userXXX 예. 모든 매개 변수에는 콜론이 필요합니다. '@selector (performSelector : onThread : withObject : waitUntilDone :)'자체의 이름을 생각해 봅시다 ... –

+0

(도움이되는 답변도 받아 들일 수 있습니다.) –