class SingleTon {
static let shared = SingleTon()
private init() { }
}
shared
라는 static 변수가 SingleTon 인스턴스를 저장하며, 생성자는 private로 선언되어 외부에서 인스턴스 생성이 제한된다. Singleton.shared
를 통해 해당 인스턴스에 접근할 수 있다. import UIKit
enum Milk {
case chocolate
case strawberry
case banana
}
// Singleton
class MilkStorage {
static let shared = MilkStorage()
private var chocoloateMilkCount = 100
private var strawberryMilkCount = 100
private var bananaMilkCount = 100
private init() { }
func release(_ milk: Milk, count: Int) {
switch milk {
case .chocolate:
chocoloateMilkCount -= count
case .strawberry:
strawberryMilkCount -= count
case .banana:
bananaMilkCount -= count
}
}
func checkMilkCount() {
print("""
- 남은 재고 -
1. 초코 우유: \(chocoloateMilkCount)
2. 딸기 우유: \(strawberryMilkCount)
3. 바나나 우유: \(bananaMilkCount)
""")
}
}
class OnlineStore {
func orderMilk(_ milk: Milk, count: Int) {
MilkStorage.shared.release(milk, count: count)
}
}
let naverSmartStore = OnlineStore()
let coupang = OnlineStore()
let weMakePrice = OnlineStore()
naverSmartStore.orderMilk(.banana, count: 15)
MilkStorage.shared.checkMilkCount()
let fileManager = FileManager.default
let fileExists = fileManager.fileExists(atPath: "/path/to/file.txt")
let session URLSession.shared
session.dataTask(with: url) { (data, response, error) in
// 네트워크 작업 수행
}.resume()
NotificationCenter.default.addObserver(self, selector: #selector(tap), name: Notification.Name("Test"), object: nil )
NotificationCenter.default.post(name: Notifiaction.Name("Test"), object: nil)
UserDefaults.standard.set("Jeon", forKey: "User")
let user = UserDefaults.standard.string(forKey: "User")
let application = UIApplication.shared
application.openURL(url)
제가 학습한 내용을 요약하여 정리한 것입니다. 내용에 오류가 있을 수 있으며, 어떠한 피드백도 감사히 받겠습니다.
감사합니다.