Objective-C 타이머
2372 단어 Objective-C
3. runLoop의 역할:
(1)runLoop은 이벤트 순환입니다. 입력한 이벤트에 응답하는 이벤트 처리 프로그램을 실행하기 위해 라인에 들어가서 사용합니다.
(2)while(1)에 비해 NSRunLoop은 더욱 뛰어난 메시지 처리 모델로 메시지 처리 과정을 더욱 추상적이고 봉인했다.(3) 명령행 프로젝트에서 주 루틴의runLoop은 기본적으로 켜지지 않으며 수동으로 켜야 합니다.(4)runLoop은 여기서 간단하게 다음과 같이 이해한다. 스케줄링의 역할을 하고 일정 시간 간격으로 타이머 대상에게 타이머 방법을 실행하도록 통지한다.NSRunLoop*loop = [NSRunLoop currentRunLoop]에서 현재의runLoop, 단일 모드를 가져옵니다.[loop run];프로그램이 실행 상태에 있고 종료되지 않습니다.runLoop에 대해서는 다음을 참조하십시오.
http://blog.csdn.net/wzzvictory/article/details/9237973
다음 OC 언어로 간단한 타이머 프로젝트를 만듭니다.
요구: 10s의 카운트다운 프로그램을 설계하고 프로그램이 시작하여 타이머를 켜고 카운트다운이 끝나면 타이머를 닫습니다.
MyTimer.h
#import
@interface MyTimer : NSObject
{
//
NSInteger _index;
NSTimer *_timer;
}
- (void)startMyTimer;
- (void)stopMyTimer;
- (void)timerAction:(NSTimer *)timer;
@end
MyTimer.m
#import "MyTimer.h"
@implementation MyTimer
- (instancetype)init
{
if (self = [super init]) {
_index = 10;
[self startMyTimer];
}
return self;
}
- (void)startMyTimer
{
_timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerAction:) userInfo:@"hello hyr." repeats:YES];
}
- (void)stopMyTimer
{
[_timer invalidate];
NSLog(@" ");
}
- (void)timerAction:(NSTimer *)timer
{
_index--;
NSLog(@"%li ",_index);
NSLog(@"%@",timer.userInfo);
if (_index == 0) {
[self stopMyTimer];
}
}
@end
main.m
#import
#import "MyTimer.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
MyTimer *mytimer = [[MyTimer alloc] init];
NSRunLoop *loop = [NSRunLoop currentRunLoop];
[loop run];
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PreferenceBundle에서 오른쪽 상단에 Respring 버튼을 클릭합니다.만나서 반갑습니다, Minazuki라고합니다. 프로필 이름 : Minazuki_dev Twitter : Repo : 아직 중학생이므로 말이 이상한 곳이 있습니다만 용서해 주세요… 🙏 theos (Mac이든 단품이든 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.