[iOS] SandBox

각 앱에는 파일을 저장하기 위한 자체 폴더가 있으며 다른 앱에 속한 디렉터리나 파일에는 접근할 수 없음

이러한 자체 폴더를 샌드박스라고 함

샌드박스로 인해 바이러스와 같은 악성 소프트웨어가 앱을 손상입히지 못함

앱은 이 샌드박스의 “Documents” 폴더에 파일을 저장할 수 있음

Documents 폴더의 내용은 iTunes / iCloud와 동기화할 때 백업됨

앱의 새 버전을 출시하거나 업데이트할 때에도 Documents 폴더는 그대로 유지됨

샌드박스 폴더 안에는 여러 폴더가 존재함

  • Documents : 앱이 데이터 파일을 저장할 폴더. 처음에는 비어 있음
  • Library : 캐시 파일과 기본 설정 파일이 존재. 이 폴더의 내용은 운영 체제에서 관리함
  • SystemData : 이름에서 알 수 있듯이 운영 체제에서 앱과 관련된 시스템 레벨 정보를 저장하는데 사용 됨
  • tmp : 임시 파일용. 운영 체제는 때때로 이 폴더를 지움

코드

Documents 폴더에 접근

func documentsDirectory() -> URL {
    let paths = FileManager.default.urls(
        for: .documentDirectory,
        in: .userDomainMask)
    return paths[0]
}

위 코드로 반환된 경로에 저장할 파일명을 붙여서 path를 구성할 수 있음

func dataFilePath() -> URL {
    return documentsDirectory().appendingPathComponent("파일명")
}

댓글남기기