context란 무엇인가?
대상 데이터에 대해서 변경사항을 조작, 추적하기 위한 공간이라고 해석되는데,
데이터를 저장소에 저장할 때 까지 context 메모리에 저장하고 있다고 합니다.
자세한 내용은 애플 공식문서를 참고해보면 좋습니다!
https://developer.apple.com/documentation/coredata/nsmanagedobjectcontext
예제 예시
테이블 뷰컨트롤러에서 array를 생성합니다.
Todo List를 예시로 Entity는 TodoListModel이라고 정의했습니다.
// CoreData의 entity는 TodoListModel로 설정했다.
import UIKit
import CoreData //
class TodoViewController: TableViewController {
//...
let todoArray = [TodoListModel]()
//...
}
참조할 context 데려오기 (전역변수)
context를 참조하려면 AppDelegate class에서 정의한 viewContext 를 참조해야합니다.
참조는 아래와 같이 진행합니다.
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
저장하기 예시
context에서 현재까지 변경된 내용을 저장하는 메소드를 만들어 보겠습니다.
func saveData() {
do {
try context.save() // 이 부분이 persistent store에 저장하는 코드!
} catch {
print("context 저장중 에러 발생 : \\(error)")
}
원하는 entity 타입의 데이터 불러오기
func loadData() {
// entity명이 TodoListModel 일 때의 요청
let request = NSFetchRequest<TodoListModel> = TodoListModel.fetchRequest()
do {
try context.fetch(request) // 데이터 가져오기
} catch {
print("데이터 가져오기 에러 발생 : \\(error)")
}
}
해당하는 데이터 삭제하기
func deleteData(data: TodoListModel) {
context.delete(myArray[indexPath.row])
self.myArray.remove(at: indexPath.row)
saveData()
}
반응형
'개발 > Swift' 카테고리의 다른 글
[Swift/Realm] List-LinkingObject 로 관계 설정한 데이터 Read, Create, Update 하기. (0) | 2022.06.26 |
---|---|
[Swift] CoreData Request에 이중필터 적용하기 (NSCompoundPredicate) (0) | 2022.06.24 |
[Swift] 서치바 검색한 데이터만 불러오기 (CoreData) (0) | 2022.06.24 |
[Swift/Realm] Object 만들고 가져오기 (0) | 2022.06.24 |
[Framework] AVFoundation의 간단한 설명 (0) | 2022.05.24 |