-
[싱글톤 패턴]
: 객체를 하나만 생성하여 공용으로 사용하고 싶을 때 사용하는 디자인 유형.
전역에 둔다는 것은 무엇인가?
: 어떤 클래스 안에 넣지 않고 프로젝트에서 접근 가능한 범위에 둔다.
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
iOS) lazy, type property 는 언제 초기화될까?
우선, 간단하게 lazy, tpye property 가 무엇인지 정리해보면 lazy property 는 호출할 때 연산을 하는 지연 연산 프로퍼티이다. type property 는 인스턴스에서 호출하는 것이 아닌 타입에서 호출될 때 한 번
gyuios.tistory.com
기본 프로퍼티는 인스턴스가 생성될 때마다 매번 생성된다. 반면에 타입 프로퍼티는 한번 메모리에 올라가면 그 뒤로는 생성되지 않는다. 그렇기 때문에 인스턴스가 생성될 때 호출되는 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) 싱글톤 패턴(Singleton Pattern)
안녕하세요 :) 소들입니다 이번 포스팅에선 싱글톤 패턴이 무엇이고, Swift에선 어떻게 사용되는지에 대해 알아보려고 해요!!! 왜 네트워크 하다가 갑자기 SingleTon이냐 하면 내 마음임 모든 포스팅
babbab2.tistory.com
'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