티스토리 뷰
싱글턴 (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 |
댓글