-
[ios/Swift] UserDefaults객체에 객체배열 저장하고 가져오기Study/ios 2023. 3. 12. 16:55
UserDefaults객체를 통해 원하는 정보를 반영구적으로 저장하고 불러올 수 있다.
이때 일반적인 방법으로는 객체배열을 불러올 수 없다.
데이터를 저장 할때는 인코딩해주고 불러올 때는 디코딩 해줘야 한다.
User라는 클래스나 구조체가 있다 하면..
// Codable 프로토콜 채택 class User: Codable { . . . }
let ud = UserDefaults.standard var user:[User] = [] // 객체배열 생성 // user라는 객체배열을 인코딩하여 "user"라는 키로 저장 ud.set(try? PropertyListEncoder().encode(user), forKey: "user")
-> 저장
// "user"키를 통해 저장된 데이터를 불러온다. // 데이터타입을 객체배열인 [User]로 가져와 리턴해준다. guard let savedUser = ud.value(forKey: "user") as? Data, let loadUser = try? PropertyListDecoder().decode([User].self, from: savedData) else { return [] } return loadUser
-> 불러오기
'Study > ios' 카테고리의 다른 글
[ios/Swift] TableView 사용법 - 기본 (0) 2023.03.19 [ios/Swift] 객체의 속성으로 객체배열 정렬하기 (0) 2023.03.12 [ios/Swift] UserDefaults를 통한 비동기식 데이터 전달 (0) 2023.03.08 [ios/Swift] 데이터 받아오기 - 동기식(Segue Action) (0) 2023.03.07 [ios/Swift] 화면 전환간 데이터 전달 - 동기식(present 화면전환) (0) 2023.02.20