iOS6 에서 쓰레드(thread) 사용하는 법
간단하게 사용하는 방법으로 할 예정입니다.
라벨에 스레드로 10까지 더하는 걸 표시할 예정입니다.
먼저 라벨을 초기화 합니다.
self.label.text = @"1";
그 다음 스레드를 가동합니다.
타이머랑 비슷하네요.
라벨에 스레드로 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개를 해야 스레드를 이용할 수 있습니다.
실행해보니 잘 돌아갑니다.
댓글
댓글 쓰기