3.2 Date

Jay·2025년 2월 6일

Level 3 - SingleView App

목록 보기
2/24

Goal

  • 새로운 프로젝트를 생성하여 현재 시간을 레이블에 표시해보기.
  • 애플 문서 보는법 익히기.

Meterials

Structure Date
현재 시간을 세계표준시로 반환한다.

Class DateFormatter
날짜와 그것을 표현하는 문자열간의 변환을 담당하는 포매터.

Thinking First

이번 챕터에서는 시간을 나타내는 도구를 이용할 것이다. Date를 이용하면 현재의 날짜와 시간을 얻을 수 있는데 MVC 패턴에 따라 모델에 해당하는 시간에 대한 정보는 별도의 클래스를 생성하여 저장하고 이것을 화면에 표시하기 위해 DateFormatter 로 시간에 대한 문자열을 생성해보자.

Making Next

File > New > File from Template 메뉴에서 새로운 파일을 생성할 수 있다. (⌘N)
파일이름은 클래스를 찾는 용도이므로 가급적 클래스명과 일치시키는 것이 좋다.

Clock.swift 를 입력하고 Create 버튼을 클릭해보자.

파일안에 Clock 이라는 클래스를 만들고 Date 클래스의 인스턴스를 date 라는 프로퍼티에 할당한다.

// Clock.swift
class Clock {
let date = Date()
}

이번엔 Main.storyboard 파일을 클릭하여 오브젝트 라이브러리에서 lable을 뷰컨트롤러 중앙에 위치시키고 ViewController 클래스에 outlet으로 timeLabel 을 선언해준다.

이어서 다음과 같은 코드를 추가해보자.

// ViewController.swift 	
class ViewController: UIViewController {
   @IBOutlet weak var timeLabel: UILabel!

   let clock = Clock()   // clock 프로퍼티에 Clock 인스턴스를 할당한다.
  
   override func viewDidLoad() {
       super.viewDidLoad()
      
// DateFormatter의 인스턴스를 만들고
       let formatter = DateFormatter()    
// 초단위까지 표시하기 위해 시간표시 스타일을 medium 으로 지정한다.
       formatter.timeStyle = .medium      // date 를 문자열로 변환하여 레이블의 텍스트에 할당한다.
       timeLabel.text = formatter.string(from: clock.date)  
   }
}

앱을 실행해보면 현재 시간이 화면에 표시 될 것이다.

DateFormatter 의 용법을 좀 더 알고 싶다면 애플에서 제공하는 문서를 참고하면 된다.

⌥ 키를 누르고 해당 클래스로 드래그 해서 커서가 ? 로 바뀌면 버튼을 눌러보자.
다음처럼 간략히 설명히 제공되는데 Formatter 를 상속받고 Foundation.NSDateFormmatter 에 선언되어 있음을 알 수 있다.

좀 더 자세한 정보를 알기 위해 링크된 텍스트를 클릭하거나 Developer Documentation 으로 접속해보자.(⇧ ⌘ 0 )

검색해보면 DateFormatter 의 문서를 어렵지 않게 찾을 수 있다.

우측을 보면 지원되는 언어와 SDK 버전을 알 수 있다.

클래스의 대한 설명과 예제도 자세히 설명되어 있고 각 프로퍼티와 메서드의 용법을 알 수 있다.

크게보면 결국 프로퍼티와 메서드를 공부하는 것이고 프로퍼티는 인스턴스 프로퍼티와 타입프로퍼티, 메서드도 인스턴스 메서드와 타입 메서드로 나뉜다.

그동안 공부했듯이 func 로 선언된 메서드는 인스턴스에서만 접근 가능한 인스턴스 메서드이다.
다음의 localizedString(from:dateStyle:timeStyle:) 은 class func 로 선언되어 있는데 이것이 타입에서만 접근 가능한 타입 메서드이므로 다음처럼 타입에서 바로 접근 가능하다.

DateFormatter.localizedString()

마찬가지로 프로퍼티도 일반 변수는 인스턴스 프로퍼티,
class 로 선언되어 있다면 타입 프로퍼티라고 한다.

defaultFormatterBehavior 도 타입 프로퍼티이므로 다음처럼 바로 타입에서 접근해 사용한다.

DateFormatter.defaultFormatterBehavior

Closing

보통 모르는 내용이 나오면 구글링으로 해결할 수 있지만 언어를 만든 애플에서 제공한 문서가 가장 정확하고 빠짐없이 내용을 기술해 놓았다.
처음엔 온통 영어로 알 수 없는 내용만 가득해서 어려울 수 있지만 실력이 향상 될 수록 문서가 이해되고 그 중요성을 알게 될 것이다.
처음 배우는 내용을 익힐때는 항상 애플문서를 참조하는 습관을 들이도록 하자.

profile
Software Engineer Specialized on iOS

0개의 댓글