일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 오브젝트
- COLOR
- 가상 메모리
- 비동기
- core data
- async
- deadlock
- Apple Developer Academy
- decode
- 프로세스 스케줄링
- 운영체제
- UserDefaults
- 알고리즘
- 상호배제
- IOS
- Algorithm
- 100 days of SwiftUI
- 데드락
- @state
- SwiftUI
- 동기화
- 인프런
- struct
- 앨런
- 파일 시스템
- Codable
- Linked List
- 동시성
- forEach
- Swift
- Today
- Total
목록UserDefaults (3)
기어가더라도 제대로
상황 1. 관찰되는 Data 클래스가 필요함 2. 그 데이터 클래스에는 [User] 타입을 들고 있는 @Published 프로퍼티가 필요함. 3. 이 Data에 init이 되고(Decoding), 값이 쓰여질 때마다 UserDefault 로 Encoding 하는 예제 코드 작성 참고. User 는 구조체 struct User: Codable, Identifiable, Equatable { var id = UUID() var name: String } class Data: ObservableObject { @Published var users: [User] = [] { didSet { if let encoded = try? JSONEncoder().encode(users) { UserDefaults.sta..
AppStorage 같은 경우엔 간단한 String, Int, Bool 등을 저장가능 복잡한 데이터 타입을 담기위해선 UserDefault 자체를 씀 struct User: Codable { let firstName: String let lastName: String } Codable 이라는 프로토콜을 채택하는데, 이것은 이런 의미를 가지고 잇다. 이런 인스턴스를 archiving 하기 -> Encode() unarchiving 해서 인스턴스화 하기 -> Decode() 즉, Codable == Encodable + Decodable 어쨌든 저장하기 위해서는 plane 한 Text 로 저장이 가능한데 인스턴스의 경우 plane 한 텍스트로 만드는 것을 Encode, Text 에서 인스턴스화 하는 것을 D..
문제 상황 사용자가 앱을 사용하면서 좋아하는 설정을 해놓으면, 이에 관한 정보를 어디에 담을 것인가? 예를들면 다크모드를 사용하고 있다던지, 글자 크기는 보통보다 크다든지, 음악의 재생속도를 설정하는 등의 상황들 말이다. 이러한 설정들을 어플리케이션에 저장할 수 있는 방법이 있는데 UserDefaults 라고 한다. 간단한 사용법을 한 번 알아 보자. 공식문서에서는 뭐라고 하는가? 앱의 launch 에서부터 key-value 쌍의 데이터를 영구적으로 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스 런타임에 사용할 때마다 찾아오지 않고 캐시를 한다고 한다. 파일 기반으로 저장하기 때문에 저장된 파일을 옮기면 찾지 못한다고 한다. bookmarkData() 를 사용하라고 한다. 사용법 UserDefau..