2017-02-04 2 views
3

타이머를 사용하고 작동했지만 NSTimer가 타이머로 바뀌었기 때문에 타이머가 작동하지 않습니다. 내가 시도한 코드는 다음과 같습니다 :스위프트 3 타이머가 작동하지 않습니다.

override func viewDidLoad() { 
    super.viewDidLoad() 

    _ = Timer(timeInterval: 3, target: self, selector: #selector(test), userInfo: nil, repeats: true) 

} 

func test() { 
    print("The timer worked") 
} 

테스트 함수는 호출되지 않으며 나는 그 이유를 모릅니다. 나는 또한 그것을 처음으로 초기화하고 그것을 이렇게 사용하는 시도했다 :

var followUpTimer:Timer! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    followUpTimer = Timer(timeInterval: 3, target: self, selector: #selector(test), userInfo: nil, repeats: true) 

} 

func test() { 
    print("The timer worked") 
} 

그러나 그것은 역시 작동하지 않는다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 온라인에서 찾은 모든 대답은 이것이 올바른 방법임을 보여줍니다.

답변

11

(NS)Timer 제대로 작동하려면 실행 루프가 필요합니다. 프로그래밍 방식으로 타이머를 루프에 추가 할 수 있지만이 방법을 사용하는 것이 더 편리합니다.

Timer.scheduledTimer(withTimeInterval:... 
+0

너무 가깝습니다. 고맙습니다. 타이머가 끝나면 대답을 수락합니다. –

관련 문제