iOS6 에서 쓰레드(thread) 사용하는 법

간단하게 사용하는 방법으로 할 예정입니다.

라벨에 스레드로 10까지 더하는 걸 표시할 예정입니다.

먼저 라벨을 초기화 합니다.

self.label.text = @"1";

그 다음 스레드를 가동합니다.
타이머랑 비슷하네요.

[NSThread detachNewThreadSelector:@selector(threadtest) toTarget:self withObject:nil];

이제 스레드에서 호출한 threadtest 함수를 만들어야겠네요.
-(void)threadtest {
    @autoreleasepool {
        // former code here
        int i = [self.label.text intValue];
        while(i < 10){
            NSString *str_i = [NSString stringWithFormat:@"%i", i + 1];
            [self performSelectorOnMainThread:@selector(updateLabel:) withObject:str_i waitUntilDone:false];
            [NSThread sleepForTimeInterval:0.5f];
            i = [self.labelCalendar.text intValue];
        }
        [NSThread exit];
    }
}

보여주는 콘트롤은 별로로 빼야 한다고 해서 updateLabel로 뺐습니다.
이제 이 함수를 만들어 보겠습니다.
-(void)updateLabel:(NSString *)text {
    self.labelCalendar.text = text;
}

여기는 파라미터가 있네요.
위에 performSelectorOnMainThread 에서 파라미터를 같이 보낼 수 있습니다.

위와 같이 3개를 해야 스레드를 이용할 수 있습니다.
실행해보니 잘 돌아갑니다.


댓글

이 블로그의 인기 게시물

한글 2010 에서 Ctrl + F10 누르면 특수문자 안뜰 때

아이폰에서 RFID 사용하는 방법

VCC 와 GND 는 무엇일까?