ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SwiftUI] CoreData를 써보자
    Swift/SwiftUI 2022. 4. 17. 02:45

    일단 용어 정리좀 하고 갑시다

    SQLite 경험이 있다면 금방 이해하실겁니다

    New file -> Data Model

    Entity = Table

    Attributes = Column

    Relationships = ForeignKey

     

    우측 inspector 보면 다양한 설정을 할수 있다

    DataController라는 swift 파일을 하나 만들어 주자

     

    보면 알겠지만 

    FoodModel이라는 Entity에 대한 class 이고,

    class 내부에 함수들을 만들어

    Food라는 Entity에 data를 CRUD할수 있게 도와준다

    그래서 DataController 라고 conventional하게 쓰는거 같다

    만약 Entity가 많아진다면

    FoodDataController 등으로 바꿔줄수 있지 않을까

    여긴 App 파일인데 환경에서 접근할수 있게

    일종의 등록을 해주자

    저렇게 .environment를 통해 알려주면

    프로젝트 전역에서 쓸수 있다.

    쓰고자 하는 view에서 저렇게 @Environment로 불러올수있다.

    그다음줄 @FetchRequest는 FoodModel을 통해 등록된 모든 elements들을 불러온다

    일종의 getAll같은 거다

    위에서 @FetchRequest를 통해 food를 선언해 주었으니

    List에 담아서 iterate해보자

    deleteFood는 view 파일 내부에 private으로 선언해 주고있다

    나도 저 코드의 자세한 내용은 아직 잘 이해못했음

    EditFoodView로 가면 이렇게

    선언되어 있다

    실제로 data가 edit되는 부분

    html처럼 Form으로 감싸주자

     

    DataController를 직접 호출해서

    해당 class의 instance에 접근하고 

    넘겨준 data들을 update한다

    그리고 dismiss()를 process를 종료 한다

    이건 DataController 내부에 선언된 editFood

    food라는 instance를 받아서 고쳐주고 있다

    사실 한곳에서만 쓸거라면

    이렇게 func로 안 만들고 그냥 실행문에서 해도될거 같지만

    함수형 프로그래밍, 객체지향하자

Designed by Tistory.