일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Tags
- CryptoSwift
- RxCocoa
- then
- 하단 네비게이션바
- RxSwift
- 백그라운드 진입시 화면
- 소셜로그인
- archive error
- 테이블 뷰
- print vs dump
- snapkit
- navigationbar
- 스토리보드 없이
- 로그출력
- reactorkit
- 아카이브 에러
- codebase
- iOS 광고달기
- 비공개 앱 배포
- 로그 찍기
- color 변경
- failed: No such file or directory (2)
- AppleLogin
- 테이블뷰 밀어서 삭제
- Business Manager
- 화면 가리기
- MVVM
- 테이블뷰 셀 밀어서 삭제
- testflight error
- Apple Enterprise
Archives
- Today
- Total
ukSeung iOS
[Swift] print와 dump차이, 콘솔에 로그찍기 Console Log 본문
안녕하세요 욱승입니다.
이번 포스팅에선 콘솔에 로그 찍는 방법을 알아보겠읍니다
'print', 'dump'디버깅 목적으로 사용되는 Swift의 내장 함수입니다.
Swift에서 콘솔에 로그를 출력하는 방법은 두가지가 있습니다.
dump
print vs dump
print - 콘솔 출력에 변수, 상수 및 표현식의 값을 인쇄하는 함수입니다. 디버깅 목적으로 콘솔에 메시지를 표시하는 간단하고 빠른 방법입니다.
dump - 개체의 구조와 내용에 대한 자세한 설명을 인쇄합니다. 클래스, 구조체 및 배열과 같은 복잡한 개체를 검사하는 데 사용할 수 있습니다.
예제1
import Foundation
import UIKit
final class GameCenterViewController: UIViewController, ViewAttribute {
var dic : Dictionary<String, String> = ["a": "1", "b": "2"]
override func viewDidLoad() {
print(dic)
dump(dic)
}
}
Dictionary를 나타낸 로그 첫번째라인만 print, 나머지는 dump
dump가 더 디테일하게 나오쥬?
예제2
import Foundation
import UIKit
struct Person {
var age = 28
var name = "욱승"
}
final class GameCenterViewController: UIViewController, ViewAttribute {
let person = Person()
override func viewDidLoad() {
print(person)
dump(person)
}
}
+ 응용
import Foundation
internal func traceLog(_ description: String,
fileName: String = #file,
lineNumber: Int = #line,
functionName: String = #function) {
let traceString = "\(fileName.components(separatedBy: "/").last!) -> \(functionName) -> \(description) (line: \(lineNumber))"
print(traceString)
}
이런식으로 전역 함수하나 정의해주시고
호출은 traceLog("{아무거나}")
//
// GameCenterViewController.swift
// HowFastYouReact
//
// Created by plsystems on 2023/03/16.
//
import Foundation
import UIKit
final class GameCenterViewController: UIViewController, ViewAttribute {
override func viewWillAppear(_ animated: Bool) {
traceLog("5")
self.navigationController?.isNavigationBarHidden = false
}
override func viewDidLoad() {
traceLog("1")
setUI()
setAttributes()
setUpControl()
}
func setUI() {
self.view.backgroundColor = .white
traceLog("2")
}
func setAttributes() {
traceLog("3")
}
func setUpControl() {
traceLog("4")
}
}
요로코롬 호출하면됨..
해당 코드는 순서를 예측해서 traceLog에 찍어보았다. viewWillappear보다 viewDidLoad가 먼저 호출되기 때문에 이러한 순서가 나옴!
이해가 힘들다면 뷰의 생명주기를 먼저 보길 권장합니당
728x90
반응형
'iOS > Swift' 카테고리의 다른 글
[Swift] UITabbar, 하단 탭바 구현 (0) | 2023.04.30 |
---|---|
[iOS] Background, Inactive(Foreground) 진입시 화면가리기 (0) | 2023.03.23 |
[Swift] API 가이드라인 (0) | 2023.03.10 |
[Swift] 메모리 관리 이미지 리사이징 ImageIO, VM: ImageIO_PNG_Data (0) | 2023.02.19 |
[Swift] App Version정보 가져오기 (0) | 2023.01.10 |