logo

English

이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다. 질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.

iOS - Thread Loop 내에서 UI 업데이트 방법

by digipine posted Nov 01, 2017
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

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:selfselector:@selector(processUpdate:) userInfo:nil repeats:YES];

 

 

 

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

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

 

}

 

 

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

TAG •

List of Articles
No. Subject Author Date Views
16 [iOS, MacOS] NSNotification, NSNotificationCenter 사용법 digipine 2017.11.02 1026
15 MacOS mysql 비밀번호 분실 시 재설정하기 digipine 2017.11.14 1029
14 [iOS, MacOS] Singleton 싱글톤 패턴 사용하기 2 digipine 2017.11.02 1080
13 iOS - UITextField의 Placeholder Color 색 변경하기 file digipine 2017.11.02 1152
12 OSX 사파리 최신 버전 폰트 변경하기 file digipine 2017.11.03 1224
11 [MacOS, Swift] 스크롤뷰, NSScrollView 사용법 엉뚱도마뱀 2018.11.01 1264
10 [swfit 4] 스위프트 Swift 동시성 동기화 정리 엉뚱도마뱀 2018.09.06 1316
9 [Objective C] NSString 앞뒤 공백 문자 및 줄바꿈 문자 제거 digipine 2017.11.02 1656
8 iOS - Objective - C, URL 인코딩과 디코딩 digipine 2017.11.01 1679
7 [macOS] Sandbox 정책 극복기 Accessing Security Scoped Resource 1 file digipine 2017.11.02 1782
6 [iOS/macOS] 사설 인증서를 사용한 SSL HTTPS 통신 시 우회처리 digipine 2021.07.06 2991
5 [Objective-C] NSOperation과 NSOperationQueue를 사용하는 방법 - 설명 및 예제 엉뚱도마뱀 2018.03.14 4195
4 [Swift 3] TCPIP Socket 통신 클래스 소스 코드 및 사용법 digipine 2017.11.02 4649
3 [iOS/Objective-C] __weak, __block 사용법 digipine 2021.02.16 5557
2 OSX - Screen Serial Terminal - OSX에서 시리얼 터미널 사용하기 digipine 2017.11.03 6871
1 [Swift 3] HTTP Request 사용하기, 클래스 소스코드 및 사용법 digipine 2017.11.02 9781
Board Pagination Prev 1 2 3 Next
/ 3