iOS/Swift 어플 따라하기
[Swift] Coredata로 CRUD
Chafle
2022. 10. 14. 17:48
반응형
지난 피드에서는 Coredata로 C를 했다면
이번 피드에서는 나머지 RUD(Read, Update, Delete)를 수행해보자
Read
1. 상수를 만들고 NSFetchRequset를 이용하여 데이터를 지정
NSFetchRequest<Entity name>
(a) NSFetchRequest는 데이터 타입을 미리 정해줘야 한다.
let request : NSFetchRequest<Item>
(b) Entity에서 전체 항목을 가져온다
let request : NSFetchRequest<Item> = Item.fetchRequest()
2. context로 가져와서 불러오기
context.fetch(request)
3. do try catch문 사용하기
실제로 fetch는 리턴값을 array형태로 반환한다.
이 값을 개인적으로 설정해 둔 array값에 할당
나의 경우(itemArray)
func loadItems() {
let request: NSFetchRequest<Item> = Item.fetchRequest()
do {
itemArray = try context.fetch(request)
} catch {
print("error fetching data from context \(error)")
}
}
**
db다뤄주는 Liya앱을 사용하여 실제 저장한 데이터를 잘 불러오는지 확인해보자
아주 잘 불러오는 것을 확인할 수 있었다..
Update
단순히 현재 상태를 commit하는 메서드가 있으면 되고
context.save를 통해 저장하고
필요한 시점에서 READ한다.
DELETE
context.delete(itemArray[indexPath.row])
itemArray.remove(at: indexPath.row)
DELETE는 서순이 중요하다
itemArray.remove먼저 시행하게 되면, 이미 지워진 itemArray[indexPath.row]에서 context.delete를 시행하므로 에러가 나게 된다.
그렇기 때문에 위와 같은 서순으로 진행한다.
반응형