안녕하세요! 오늘은 싱글톤 패턴에 대해서 들고 왔습니다.
앱 개발 초기부터 많이 사용하게 되는 패턴이라 익혀두면 아주 좋은데요!
사용 방법도 정말 간단합니다. 먼저 싱글톤 패턴이 무엇인지 부터 보겠습니다.
예를 들어, 우리 앱을 사용하는 유저의 정보를 핸들링 한다고 해 봅시다. 아래와 같은 클래스를 만들어서 사용해 볼 건데요!
class User {
var name: String?
var age: Int?
var gender: Int?
}
우리 앱을 다운받은 유저가 앱에 들어와서 이름, 나이를 입력받았습니다. 그리고 몇 번의 화면 전환 후에 성별을 따로 입력받으려고 합니다. 이럴 때, 화면 전환때마다 같은 User를 계속 넘겨주는 것은 굉장히 불필요하고 귀찮은 일일거예요.
이럴 때를 대비해서 글로벌하게 쓸 수 있는 단 하나의 User를 만들어버리는 겁니다. A 화면에서도 쓰고~ B 화면에서도 쓰고~ 계속 쓸 수 있게요.
그럼 위의 보통의 클래스를 싱글톤으로 바꾸어 보겠습니다.
두가지 변동사항이 있죠?
첫번째, static 타입의 상수로 인스턴스를 만들어 줍니다. 이때 보통 상수명은 shared를 많이 씁니다.
두번째, 접근제어자 private를 활용해 초기화 해줍니다. 이렇게 해 두면 해당 클래스 내에서만 초기화가 가능하니 다른 어떤 곳에서도 실수로 새로운 인스턴스를 만드는 일이 없을 거예요.
이렇게 해주면 싱글톤 패턴은 끝 입니다! 여러 뷰에서 접근하면서 활용해보시기 바랍니다 :)
class User {
static let shared = User()
var name: String?
var age: Int?
var gender: Int?
private init() { }
}
이런 용도의 내장 클래스가 원래 있긴 하죠? 바로 UserDefaults.standard죠! 앱 처음 만들때부터 지금까지 참 잘 사용하고 있는 녀석인데요. UserDefaults를 사용해 저장해 준 키, 밸류는 앱의 생명주기와 관계없이 앱을 삭제하지 않는 한 사라지지 않기 때문에 편리하게 쓸 수 있습니다. 이 UserDefaults도 싱글톤 패턴의 대표적인 예라고 볼 수 있겠습니다.
다음에도 꿀팁을 들고 찾아오도록 하겠습니다! 도움이 되셨다면 하트와 구독을 부탁드립니다!
[iOS/Swift] 스택(Stack)과 스택 오버플로우란? 예제로 알아보기 (0) | 2022.02.16 |
---|---|
[Swift] 스위프트의 값 타입과 참조 타입 (코드로 실험하기) (0) | 2022.02.15 |
[iOS/Swift] Navigation Bar에 Search Bar 예쁘게 넣는 법 (2) | 2022.02.11 |
[iOS/Swift] UINavigationController 와 UITabBarController 동시에 쓰는 방법 - Swift (7) | 2022.02.05 |
[iOS/Swift] MKMapKit, CLCoreLocation 으로 지도앱 만들기- 소스코드 제공 (10) | 2022.02.03 |