데이터의 크기와 특성에 맞게 적절한 방식 채택
User Defaults
, Property List
Keychain
혹은 암호화해서 저장Core Data
, Swift Data
보통 Binary데이터를 직접 저장하는 경우는 거의 없다.
iOS에서 파일에 접근하는 방법은 상당히 제한적이다.
보안적 측면, 데이터 무결성을 위해 Sandbox
메커니즘을 사용한다.
앱을 설치하면 Sandbox 디렉토리가 생성되고, 앱과 관련된 모든 파일은 여기 저장된다.
앱에서 접근 가능한 범위도 Sandbox 내부로 제한된다.
따라서 다른 앱에 저장된 데이터에 접근하는 것은 불가능하다.
Documents
: 사용자가 직접 생성한 데이터 저장. iCloud 백업 가능.Library
: 사용자가 생성하지 않고 앱실행에 필요해 영구적으로 저장하는 데이터. iCloud 백업 가능.Caches
: 캐시로 사용하는 데이터는 여기 저장. 공간이 부족해지면 iOS가 삭제. 따라서 파일을 읽기 전에 확인 후 처리해야 함Application Support
: 설정 파일. iCloud 백업 가능.tmp
: 임시 파일 데이터. 특정 시점에 iOS가 삭제하지만 사용 후 바로 삭제하는 것이 좋음.print(NSHomeDirectory()) //설치된 앱의 경로 확인 가능
SystemData
: 시스템이 사용하는 디렉토리. 무시해도 됨.Preferences
: 시스템이 사용. User Defaults가 여기 저장됨Application Support
는 기본적으로 만들어지지 않으므로 만들어서 사용해야 함.