728x90
※출처 - 꼼꼼한 재은씨의 Swift: 실전편
프로퍼티 리스트 (Property List)
- 애플의 주요 소프트웨어 프레임워크에 이용되는 객체 직렬화를 위한 XML 형식의 파일
- .plist 확장자를 가지기 떄문에 plist라고도 불림
- 간단한 데이터 계층을 표현하기 위한 추상화
- 비교적 단순한 데이터를 XML 포맷에 맞추어 key-value 형식으로 저장하는 것
- 대부분 앱의 공통 데이터나 주요 설정 정보를 저장하는 데 쓰임
- 마지막으로 열었던 문서, 파일에 대한 정보
- 가장 많이 실행한 메뉴 정보
- 환경 설정 데이터
- 저장 가능한 데이터 타입은 2가지
- Primitive data type (원시 타입)
- String, Int, Float 등 (Swift에서 제공)
- Reference data type (레퍼런스 타입)
- NSString, NSNumber, NSDate, NSData ( Foundation 프레임워크에서 제공)
- Primitive data type (원시 타입)
※ 객체 직렬화
- 객체의 내용을 바이트 단위로 변환하여 파일에 기록 or 네트워크를 통해 전달이 가능하도록 하는 것
UserDefaults
- iOS에 앱을 설치하면 데이터를 저장할 수 있는 영역인 기본 저장소가 생성됨 -> 기본 저장소는 plist를 기반으로 <앱 아이디>.plist 파일 생성 후 XML 형식으로 데이터 저장
- 이 파일은 앱 실행 시점에 생성되기 때문에 Xcode 프로젝트 네비게이터에서는 확인 불가능
- 앱 실행 과정에서 저장해야 할 데이터가 비교적 단순한 구조라면 기본 저장소에 저장하는 것이 적절
- iOS에서는 기본 저장소를 쉽게 다룰 수 있도록 UserDefaults를 제공
- 런타임 (runtime) 환경에서 동작하는 객체
- 앱이 실행되는 동안 기본 저장소에 접근하여 데이터를 가져오고 기록한다.
- 예를 들어, 앱의 설정 값을 저장 후 나중에 재실행 시 불러올 수 있다.
- 플레이 그라운드에선 사용 불가
- 싱글톤 (SingleTone) 패턴
- 여러 곳에서 동시에 호출할 시 생기는 동시성 문제를 방지하기 위해 Blocking 알고리즘을 이용하여 Thread-safe 하게 설계됨
- 불러오기 메소드
- EX) string(forKey:), integer(forKey:), data(forKey:), object(forKey:) 등등
- 저장 메소드
- EX) set(_:forKey), setValue(_:forKey:)
- EX) sertNilValueForKey(_:) (nil 타입)
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] 앱 생명주기 (Application Life Cycle) (0) | 2021.04.28 |
---|---|
[iOS] 로컬 알림 (Local Notification) (0) | 2021.04.28 |
[iOS] UIControl (0) | 2021.04.25 |
[iOS] 코코아 터치 프레임워크 (Cocoa Touch Framework) (0) | 2021.04.22 |
[iOS] present로 화면 이동 시 full screen으로 이동 (0) | 2021.02.03 |
댓글