본문 바로가기

coredata

(4)
08. 새 Entity 추가, 의존성 추가 List 아래에 저장 될 Reminder Entity를 생성한다. 저장되는 데이터들은 위와 같고, 특별히 유별난 데이터를 저장할 것이 아니기때문에 Codegen도 Class Definition 그대로 둔다. 이제 이 둘을 연결해서 의존성을 부여해야 한다. MyList의 list(Inverse)들은 각각 reminder(Destination = Reminder)를 갖게 된다. 그리고 이들은 다수다. (To Many) Reminder의 reminder(inverse)들은 각각 하나씩의 list(Destination = MyList)를 갖게 된다. 이들은 하나다. (To One) 최종적으로는 위와 같은 형태로 relation이 완성된다. MyList는 Reminder로 연결되고, 여러개를 소유할 수 있으므로 ..
06. ListView 구성하기, Preview Data 구성하기 지금은 데이터가 CoreData에 잘 저장되는지 확인하기 위한 임시 출력하고 있을 뿐, 어떤 동작도 하지 않고, 모든 데이터를 포함하고 있지도 않다. 폴더 기능까지는 그렇다 치더라도 아이콘과 이름 등을 알맞게 표시하면 좋을 것 같다. // // MyListCellView.swift // ReminderApp // import SwiftUI struct MyListCellView: View { let myList: MyList var body: some View { HStack { Image(systemName: "line.3.horizontal.circle.fill") .foregroundColor(Color(myList.color)) Text(myList.name) Spacer() Image(syste..
01. CoreData 설계(01) Reminder 앱을 위한 데이터로는 List와 Reminder가 존재한다. 이번엔 List를 위한 Entity를 설계하고, 이를 앱에서 사용할 수 있도록 Implement 한다. Entity 이름은 MyList이고, color와 name이라는 Attribute를 갖는다. color의 타입으로 사용할 UIColor는 CoreData에서 기본적으로 지원하지 않는 타입이기 때문에 직접 지정과 변환을 진행해 줘야 한다. 이를 위해 Codegen 설정을 Manual로 바꿔주고 color attribute의 타입을 Transformable로 설정하고, Transformer와 Custom Class를 직접 지정한다. // // MyList+CoreDataClass.swift // ReminderApp // impo..
018 ~ 021. DB, Memo Editing (데이터베이스, 메모 수정) DB (데이터베이스) DB 작성 iOS 앱의 DB는 CoreData를 사용해서 만들어 진다. CoreData는 프로젝트 생성 시에 이미 활성화 해 둔 상태이고, 기본적인 내용 또한 자동으로 추가 된다. 바로 앱 이름의 '.xdatamodeld' 파일이 DB이자 CoreData 파일이다. 해당 파일은 데이터 저장 방식의 설계도 역할을 한다. 좌측 하단의 'Add Entity' 버튼을 툴러 Entity를 생성하고, 컨텐츠와 날짜를 저장 할 Attribute를 각각 생성한다. 최종적으로는 위와 같은 모습이 되어야 하며, Entity의 Attribute Inspector의 'Codegen'이 Class Definition으로 되어 있어야 한다. 이 상태로 빌드를 시도하면 에러가 발생하는데, 임시로 생성해 뒀던 ..