반응형
1. Documents 폴어에 대한 파일 경로를 생성
filemanager - 파일 시스템에 대한 인터페이스를 제공하는 객체
let dataFilePath = FileManager.default.urls(for: FileManager.SearchPathDirectory, in: FileManager.SearchPathDomainMask
디렉토리 및 도메인 마스크로 구성된, url이 Array로 구성 돼있다.
.documentdirectory와 / .userDomainMask로 채워주고
무엇이 있나 항목을 테스트 해보자
let dataFilePath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
print(dataFilePath)
디버그 창에 아래와 같은 경로가 뜨고 경로에 결국 가보면
plist파일이 있음을 확인
UserDefaults와 다른점은 Array형태라는 것
2. encodedata / dataFilPath에 데이터를 쓰는 것
func saveItems() {
let encoder = PropertyListEncoder()
do {
//itemArray를 property list에 추가
let data = try encoder.encode(itemArray)
// dataFilPath에 data쓰기.
try data.write(to: dataFilePath!)
} catch {
print("Error encoding item array, \(error)")
}
tableView.reloadData()
}
4. MVC로 작성 했다면
모델 객체 유형에 Encodable 달아주고 plist 혹은 JSON으로 인코딩 할 수 있는 준비
클래스가 인코딩 가능하려면 모든 프로퍼티가 standard data type으로 있어야 한다.
class Item: Encodable {
var title: String = ""
var done: Bool = false
}
반응형
'iOS > Swift 어플 따라하기' 카테고리의 다른 글
[Swift] 프로젝트 중 CoreData 추가하기 (0) | 2022.10.11 |
---|---|
[Swift] NSCoder로 Data decode (0) | 2022.10.11 |
[Swift] UserDefault로 localData 저장 / 한계점 (1) | 2022.10.04 |
[Swift] UIAlert를 이용한 TextField 추가하기 (0) | 2022.10.04 |
[Swift] tableView에서 select 시 회색박스 해제 /check box 선택,해제 (0) | 2022.09.23 |