로그인을 위해서 splash 화면에서 기존 회원인지 or 신규 다운로더인지를 체크하기 위해서는
UUID가 있는지? 없는지?를 체크해줘야한다.
그러기 위해선 UUID를 가지고 있는 저장소가 필요할거 같은데...
이게 Class 인지? 뭔지 모르겠다... 공부해보자.
KeyChain : is an encrypted container that holds passwords for multiple applications and secure services. Apple Inc. uses keychain as password management system in Mac OS and iOS.
NSUserDefaults : Provides a way for application behavior customization based on user preferences. Belong to the Foundation framework for Cocoa and Cocoa Touch.
https://stackoverflow.com/questions/12090136/difference-between-keychain-and-nsuserdefault
여기 답변에 따르면 KeyChain 암호화된 Container 라고 한다.
(접근이 어려울거같은 느낌이라서 UserDefault를 사용하겠다.)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UserDefaults.standard.set("Rain", forKey: "name")
let name = UserDefaults.standard.string(forKey: "name") ?? "No One"'
print(name)
//Rain
}
}
이건 UserDefault값 바꾸는 법
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
//let changed = ["name": "HyeonA" ]
let defaults = UserDefaults.standard
defaults.set("HyeonA", forKey: "name")
let nam = UserDefaults.standard.string(forKey: "name")
print(nam!) // HyeonA
}
https://www.hackingwithswift.com/example-code/system/how-to-save-user-settings-using-userdefaults
그럼 그럼 말이지? 앱을 끌 때 UserDefault를 바꿀 수 있을까?
끌 때 말고 Backgournd에 있는건 알 수 있다.
이렇게!
override func viewDidLoad() {
super.viewDidLoad()
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.willResignActiveNotification, object: nil)
}
@objc func appMovedToBackground() {
print("App moved to background!")
}
아그럼 끌 때는... 어케알아!
https://www.hackingwithswift.com/example-code/system/how-to-run-code-when-your-app-is-terminated
일단 저장... 보진 않았다...
https://wotjd.github.io/2019/06/ios-%EC%95%B1-%EC%A2%85%EB%A3%8C%ED%95%98%EA%B8%B0-how-to-quit-app-in-swift/