Notice
Recent Posts
Recent Comments
Link
투케이2K
8. (ios/swift) timer 타이머 사용해 실시간 반복 작업 수행 실시 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
/*
[요약 설명]
1. Timer.scheduledTimer : 실시간 반복 작업을 수행할 수 있습니다
2. timeInterval : 반복 주기 시간 설정
3. target: self : 현재 클래스
4. selector : 반복 작업 수행 함수
5. userInfo : 타이머 속 함수에 값 전달
6. repeats : 반복 여부 설정
*/
// [전역 변수 선언 실시]
var intCount = 1
// [테스트 메인 함수 정의 실시]
func testMain(){
print("")
print("===============================")
print("[Program Start]")
print("===============================")
print("")
// 실시간 반복 작업 시작 실시
startTimer()
}
// [실시간 반복 작업 시작 호출]
var timer : Timer?
func startTimer(){
print("")
print("===============================")
print("[startTimer : start]")
print("===============================")
print("")
// [타이머 객체 생성 실시]
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerCallback), userInfo: nil, repeats: true)
}
// [실시간 반복 작업 수행 부분]
@objc func timerCallback() {
print("")
print("===============================")
print("[timerCallback : run]")
print("[intCount : \(intCount)]")
print("===============================")
print("")
// [처리할 로직 작성 실시]
displayText.text = String(intCount) // UI 카운트 값 표시 실시
intCount += 1 // 1씩 카운트 값 증가 실시
if intCount > 5 { // 카운트 값이 5인 경우
stopTimer() // 타이머 종료 실시
showAlert(tittle: "카운트 알림", content: "타이머 종료", okBtb: "확인", noBtn: "") // 팝업창 호출
}
}
// [실시간 반복 작업 정지 호출]
func stopTimer(){
print("")
print("===============================")
print("[stopTimer : end]")
print("===============================")
print("")
// [실시간 반복 작업 중지]
if timer != nil && timer!.isValid {
timer!.invalidate()
}
}
[결과 출력]
반응형
'IOS' 카테고리의 다른 글
10. (ios/swift) 퍼미션 권한 요청 수행 실시 - info , permission (0) | 2021.10.17 |
---|---|
9. (ios/swift) 현재 연결된 네트워크 상태 체크 실시 - NWPathMonitor (0) | 2021.10.17 |
7. (ios/swift) 생명 주기 life cycle 라이프 사이클 관리 실시 - AppDelegate , SceneDelegate , ViewController (0) | 2021.10.16 |
6. (ios/swift) 앱 디버깅 Signing for requires a development team 에러 해결 (0) | 2021.10.16 |
5. (ios/swift) alert 팝업창 호출 실시 - UIAlertController (0) | 2021.10.16 |
Comments