JuSeok

swiftui_Singleton

SwiftUI Singleton

싱글톤 패턴이란 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴이다.

지금같은 경우는 로그인한 유저의 정보를 관리하기 위해 싱글톤 패턴을 사용했다.

Singleton.swift

class Singleton{
    static let sharedInstance = Singleton()
    
    var LoginUser = User(id: 0, nick: "", pw: "")
    var IsLogin: Bool = false
    
    init(){ }
    
    public func getUser() -> User{
        return LoginUser
    }
    
    public func setUser(id: String){
        LoginUser = User.init(id: 1, nick: id, pw: "1234")
    }
    
    public func getIsLogin() -> Bool{
        return IsLogin
    }
    
    public func setIsLogin(islogin: Bool){
        IsLogin = islogin
    }
}

static let sharedInstance = Singleton() 이 부분이 최초 1회 객체를 생성하는 부분이다.

User는 id, nick, pw 3가지 값을 가지고 있는 유저 구조체이고, IsLogin은 로그인 된 상태를 저장한다.



다른 곳에서 싱글톤 인스턴스를 쓰기 위해서는 `Singleton.sharedInstance.getUser()` 이런식으로 써주면 된다.

Tags