-
[싱글톤 패턴]
: 객체를 하나만 생성하여 공용으로 사용하고 싶을 때 사용하는 디자인 유형.
전역에 둔다는 것은 무엇인가?
: 어떤 클래스 안에 넣지 않고 프로젝트에서 접근 가능한 범위에 둔다.
class로 생성 해야(:참조타입이어야 한다)
싱글톤 클래스 생성 방법
class UserInfo { static let shared = UserInfo() var id: String? var password: String? var name: String? private init() { } }
인스턴스를 저장할 프로퍼티를 만든다.
UserInfo가 생성되어 shared 프로퍼티 (타입 프로퍼티) 에 담긴다.
싱글톤 클래스 접근 방법
//A ViewController let userInfo = UserInfo.shared userInfo.id = "kk" //B ViewController let userInfo = UserInfo.shared userInfo.password = "123" //C ViewController let userInfo = UserInfo.shared userInfo.name = "minsu"
어느 클래스에서든 shared란 static 프로퍼티로 접근하면,
하나의 Instance를 공유한다.
Question 모먼트
? static을 사용해 타입 프로퍼티로 인스턴스를 생성하면, 사용 시점에 초기화(lazy) 된다.
링크)https://gyuios.tistory.com/237
기본 프로퍼티는 인스턴스가 생성될 때마다 매번 생성된다. 반면에 타입 프로퍼티는 한번 메모리에 올라가면 그 뒤로는 생성되지 않는다. 그렇기 때문에 인스턴스가 생성될 때 호출되는 initializer 와 상관없이 초기값을 가져야만 하는 것이다.
iOS에서 Singleton을 사용하는 경우
let screen = UIScreen.mainlet userDefault = UserDefaults.standardlet application = UIApplication.sharedlet fileManager = FileManager.defaultlet notification = NotificationCenter.default참조
https://babbab2.tistory.com/66
'Swift' 카테고리의 다른 글
Vapor (0) 2023.08.07 XCTest (0) 2023.08.02 Swift 개발자를 위한 Objective-C - Swift와 Objective-C 섞어쓰기 (0) 2023.07.13 에러 처리 (0) 2023.06.05 firebase - FirebaseDatabase를 연결해봅시다 (0) 2023.05.28