블로그 이미지
Sunny's

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

'thread'에 해당되는 글 1

  1. 2011.09.21 iPhone Thread Loop 내에서 UI 업데이트 방법
2011. 9. 21. 10:10 IPhone
IOS SDK에서는 UI 의 접근을 Main Thread에서 만 허용하고 있습니다.
그래 다음과 같은 코드를 실행하면 UI가 업데이트 되지 않는데요.

- (void)thread_function

{

for (; ;) {

     textView.text = @"hello";

}

}


-(void)StartRecvThread

{

[NSThread detachNewThreadSelector:@selector(thread_functiontoTarget:self withObject:nil];

}


textView가 업데이트 되지 않습니다.


이럴 때에는 performSelectorOnMainThread를 이용하여 메인 쓰레드로 접근하는 방법이 있습니다.


 
[textView performSelectorOnMainThread:@selector(setText:) withObject:[NSString stringWithFormat:@"Thread count: %d "countwaitUntilDone:YES];


이런 식으로 사용하면 되는데요.



위의 예제를 수정하면 다음과 같습니다.


- (void)thread_function

{

for (; ;) {

[textView performSelectorOnMainThread:@selector(setText:) withObject:@"hello" waitUntilDone:YES];

}

}



한편 timer를 설정하는 접근 하는 방법도 있습니다.


timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(processUpdate:) userInfo:nilrepeats:YES];


-(void)processUpdate:(NSTimer *)theTimer {

textfield1.text = [NSString stringWithFormat:@"Thread count: %d "count];


}



이런 식으로 하면 되겠지요.

posted by Sunny's
prev 1 next