티스토리 뷰

싱글턴 (Singleton)

싱글턴은 '특정 클래스의 인스턴스가 오직 하나임을 보장하는 객체'를 의미한다. 싱글턴은 애플리케이션이 요청한 횟수와는 관계없이 이미 생성된 같은 인스턴스를 반환한다. 즉, 애플리케이션 내에서 특정 클래스의 인스턴스가 딱 하나만 있기 때문에 다른 인스턴스들이 공유해서 사용할 수 있다.

 

Cocoa 프레임워크에서의 싱글턴 디자인 패턴

Cocoa 프레임워크에서 싱글턴 디자인 패턴을 활용하는 대표적인 클래스를 소개합니다.
싱글턴 인스턴스를 반환하는 팩토리 메서드나 프로퍼티는 일반적으로 shared라는 이름을 사용합니다.

  • FileManager
    • 애플리케이션 파일 시스템을 관리하는 클래스입니다.
    • FileManager.default
  • URLSession
    • URL 세션을 관리하는 클래스입니다.
    • URLSession.shared
  • NotificationCenter
    • 등록된 알림의 정보를 사용할 수 있게 해주는 클래스입니다.
    • NotificationCenter.default
  • UserDefaults
    • Key-Value 형태로 간단한 데이터를 저장하고 관리할 수 있는 인터페이스를 제공하는 데이터베이스 클래스입니다.
    • UserDefaults.standard
  • UIApplication
    • iOS에서 실행되는 중앙제어 애플리케이션 객체입니다.
    • UIApplication.shared

 

// 새로운 Swift 파일을 만들어 인스턴스 생성

import Foundation

class UserInformation {
	static let shared: UserInformation = UserInformation() 
    
    var name: String?
    var age: String?
}
// FirstViewController

class ViewController: UIViewController {
	
    @IBOutlet weak var nameField: UITextField!
    @IBOutlet weak var ageField: UITextField!
    
    @IBAction func touchUpSetButton(_ sender: UIButton) {
    	UserInformation.shared.name = nameField.text
        UserInformation.shared.age = ageField.text
    }
// SecondViewController 의 viewWillAppear

override func viewWillAppear(_ animated: Bool) {
	super.viewWillAppear(animated)
    
    self.nameLabel.text = UserInformation.shared.name
    self.ageLabel.text = UserInformation.shared.age
}

 

 

'부스트코스 - iOS' 카테고리의 다른 글

[Swift] Xib 를 활용한 TableView 다루기  (0) 2021.08.09
[Swift] Delegation  (0) 2021.07.30
[Swift] Navigation  (0) 2021.07.27
[Swift] MVC 패턴  (0) 2021.07.25
[Swift] 프로그래밍 디자인 패턴  (0) 2021.07.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함