2012-11-10 4 views
0

nstimer를 속성으로 타이머를 설정하지 않고 특정 횟수로 초기화 할 수 있습니까? 내가 원하는 이유는 응용 프로그램의 특정 기간에 새 타이머를 지속적으로 할당하고 속성 타이머를 무효화하면 더 이상 사용할 수 없으므로 속성을 사용할 수 없기 때문입니다.NSTimer를 초기화하여 특정 횟수만큼 실행 하시겠습니까?

[NSTimer scheduledTimerWithTimeInterval: target:selector: userInfo:nil repeats:] 메서드에서 타이머 매개 변수로 타이머 자체를 전달하기 위해 대상 매개 변수를 사용할 수 있습니까? (미안하지만, 나는 목표물이이 방법에서 의미하는 바를 실제로하지 않습니다.)

만약 작동하지 않는다면 어쩌면 [NSTimer scheduledTimerWithTimeInterval: invocation: repeats:]을 시도해보고 호출 속성을 사용하여이 작업을 수행 할 수 있습니까? 미안이 메서드에서 호출 매개 변수가 무엇인지 알지 못합니다. 설명서를 살펴 봤지만 여전히 이해할 수 없습니다.

답변

4

타이머의 "대상"은 선택기 (또는 메서드 또는 동작)를 실행하려는 개체를 의미합니다.

타이머를 실행 한 횟수를 추적하는 가장 좋은 방법은 "카운터"또는 "횟수 실행"속성 (또는 ivar)이있는 사용자 지정 Objective C 개체를 인스턴스화 한 다음이를 증가시키는 것입니다 타이머가 해당 객체에서 메소드를 실행할 때마다

원하는 횟수만큼 카운터가지나 자마자 사용자가 호출하는 메서드에 매개 변수로 전달되는 타이머를 무효화하고 사용자 지정 개체를 릴리스 할 수 있습니다.

+0

예 저는 알고 있습니다.하지만 타이머에서 매개 변수로 전달하는 방법을 선택기 있어야합니다. NSTimer 메서드에는 'withObject'매개 변수가 없습니다. –

+1

@MindiHansenMende NSTimer에 하나의 인수가 있어야하는 선택기입니다.이 인수는 해당 타이머입니다. 따라서 관련 메소드는'- (void) timerDidFire : (NSTimer *) timer'와 같아야합니다. –

+1

@MindiHansenMende - "userInfo"매개 변수에서 객체를 전달할 수 있습니다. –

관련 문제