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를 시행하므로 에러가 나게 된다.

그렇기 때문에 위와 같은 서순으로 진행한다.

 

반응형