싱글톤 패턴이란?
객체의 인스턴스가 오직 1개만 생성되는 패턴
클래스 정의
class NetworkManager {
static let shared = NetworkManager()
private init() {}
func request() {
// ...
}
}
공통으로 사용될 shared 인스턴스를 생성해준다.
private init으로 다른 곳에서 인스턴스를 생성할 수 없도록 만들어준다.
사용
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NetworkManager.shared.request()
}
}
타입 프로퍼티인 shared에 접근하여 프로퍼티나 메서드를 사용한다.
구조체를 쓰지 않는 이유
프로퍼티의 값을 변경할 때 문제가 생길 수 있음.
struct UserStruct {
static var shared = UserStruct()
private init() {}
var value = 10
}
var user1 = UserStruct.shared
user1.value += 1
user1.value // 11
UserStruct.shared.value // 10'iOS' 카테고리의 다른 글
| [iOS] ARC(Automatic Reference Counting) (0) | 2024.08.12 |
|---|---|
| [iOS] Result Type으로 네트워크 통신 개선해보기 (0) | 2024.08.05 |
| [iOS] Dispatch Queue (0) | 2024.07.18 |
| [iOS] identifier를 다루는 세가지 방법 (0) | 2024.07.10 |
| [iOS] 역값 전달 - 이전 화면에 값 전달하기 (0) | 2024.07.01 |