작성한 질문수
UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>
해결된 질문
작성
·
78
0
Dispatch Queue강의를 듣는도중에
앱을 실행시키고 맨 위 버튼을 누르면 숫자가 콘솔창에 출력되어야하는데 출력되지 않습니다ㅠㅠ
맨 밑에 all output이라 떠야하는데 저는 눈모양이랑 토글?모양이 나오는 점이 다른 것 같은데 어떻게 바꾸나요...
답변 1
안녕하세요
전체코드를 보여주시면 확인해 보겠습니다.
스크린샷으로는 print쓴 곳이 안보이네요
//
// ViewController.swift
// DispatchQueue
// Created by ohseungyeon on 8/8/24.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var timerLabel: UILabel!
@IBOutlet weak var finishLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true){
timer in
self.timerLabel.text = Date().timeIntervalSince1970.description
}
@IBAction func action1(_ sender: Any) {
finishLabel.text="끝"
func simpleClosure(completion: ()->Void){
//긴 작업이라는 것을 가정하기 위해서 스레드를 잠깐씩 멈춰보자
for index in 0..<10 {
Thread.sleep(forTimeInterval: 0.2)
print(index)
completion()
저는 왜 콘솔창 밑부분이 다른분들처럼 All Output으로 나오지 않고 저렇게 다르게 생겼을까요...ㅠㅜㅠ
action1매서드 내용을 다음처럼 변경해 보세요
simpleClosure {
finishLabel.text = "끝"
아, ... 정말 감사합니다. 제가 코드를 꼼꼼히 보지 않았네요. 죄송합니다.ㅜㅜ
네네 안되는거 있으면 언제든지 질문 올려주세요~
//
// ViewController.swift
// DispatchQueue
//
// Created by ohseungyeon on 8/8/24.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var timerLabel: UILabel!
@IBOutlet weak var finishLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true){
timer in
self.timerLabel.text = Date().timeIntervalSince1970.description
}
}
@IBAction func action1(_ sender: Any) {
finishLabel.text="끝"
}
func simpleClosure(completion: ()->Void){
//긴 작업이라는 것을 가정하기 위해서 스레드를 잠깐씩 멈춰보자
for index in 0..<10 {
Thread.sleep(forTimeInterval: 0.2)
print(index)
}
completion()
}
}