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
56 [macOS, iOS] 개발자 정보 확인하는 명령어 digipine 2023.03.23 419
55 Core Audio를 사용하여 macOS에서 Audio를 Capture하는 코드 digipine 2024.04.19 462
54 macOS Daemon 관련 시스템 폴더 목록 lizard2019 2024.03.08 469
53 iOS - Socket Nagle 알고리듬 OFF digipine 2017.11.01 470
52 iOS - Objective-C 남아있는 메모리 공간 확인 방법 digipine 2017.11.01 495
» iOS - Thread Loop 내에서 UI 업데이트 방법 digipine 2017.11.01 532
50 iOS - NSString 와 NSData 간의 데이터 상호 변환 digipine 2017.11.01 538
49 iOS - Objective-C Callback for C++ digipine 2017.11.01 579
48 [macOS] 현재 사용 중인(열려있는) 포트 확인하고 Close 하기 digipine 2022.10.24 622
47 Apple AppStore App Review 시 Reject 피하기 위한 방법 digipine 2017.11.02 627
46 iOS - NSURLConnection로 다중 다운로드 구현 digipine 2017.11.01 630
45 Firebase 'GoogleUtilities/GULURLSessionDataResponse.h' file not found Error Fix lizard2019 2023.07.04 632
44 iOS - Query string을 Decode 하는 소스 digipine 2017.11.01 651
43 Concurrent vs Serial DispatchQueue: Concurrency in Swift explained lizard2019 2021.04.16 668
42 iOS , MacOS, iPhone용 GZipStream class 구현하기 digipine 2017.11.01 690
41 [iOS] Audio Session Setting digipine 2021.11.26 712
40 [iOS] 개발자를 위한 iOS 15의 새로운 기능 file digipine 2021.11.04 758
39 iOS - View 이동 전환 하기 총정리 digipine 2017.11.01 820
38 [MacOS] Terminal 에서 zsh compinit: insecure directories 경고 제거하기 lizard2019 2021.04.30 832
37 [iOS, MacOS] ATS 보안 정책 가이드 digipine 2017.11.02 839
Board Pagination Prev 1 2 3 Next
/ 3