현재 로그인-회원가입-마이페이지간 기능구현 및 데이터 저장을 맡아서 개발을 완료한상태다.
로그아웃 시 사용자 정보는 유지하면서 로그인 상태만 변경하는 방법이다.
// UserDefaultsManager
class UserDefaultsManager {
static let shared = UserDefaultsManager()
// 로그아웃: 로그인 상태만 false로 변경
func logout() {
isLoggedIn = false
}
}
사용자 페이지에서 저장된 이메일과 이름을 표시하는 방법이다.
private func setupUI() {
view.backgroundColor = .white
// 저장된 사용자 정보 표시
if let savedEmail = UserDefaults.standard.string(forKey: "userEmail") {
emailLabel.text = savedEmail
}
// 저장된 사용자 이름 표시
if let savedName = UserDefaults.standard.string(forKey: "userName") {
nameLabel.text = savedName
} else {
// 이름이 없을 경우 이메일의 @ 앞부분을 표시
if let email = emailLabel.text {
let username = email.components(separatedBy: "@")[0]
nameLabel.text = username
}
}
}
xcrun simctl get_app_container booted [앱의 bundle identifier] data/Library/Preferences
AppData/
└── Library/
└── Preferences/
└── [bundle identifier].plist
po UserDefaults.standard
~/Library/Developer/CoreSimulator/Devices/
[앱 ID]/
└── data/
└── Containers/
└── Data/
└── Application/
└── Library/
└── Preferences/
└── [bundle identifier].plist
UserDefaults 데이터 디버깅 시 참고사항:
데이터 관리 Best Practices: