-
[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로 안 만들고 그냥 실행문에서 해도될거 같지만
함수형 프로그래밍, 객체지향하자
'Swift > SwiftUI' 카테고리의 다른 글
[SwiftUI] Core Data 로 CRUD 해보자 (0) 2022.04.21 [SwiftUI] Radio Button 구현하기 (0) 2022.04.19 [SwiftUI]iCalories : Core Data Tutorial in SwiftUI (2022) (0) 2022.04.17 [SwiftUI] Packages Registry (0) 2022.04.16 [SwiftUI] Custom Font 적용하기 (0) 2022.04.15