-
xcdatamodel: PostEntity
- id: 엔티티간 구분
- createdAt: 생성일을 통한 정렬 및 달력상 매핑
- videoURl: FileManager를 통해 저장된 동영상 위치
-
Entity Codgen Manual/None 선택시
- PostEntity + CoreDataClass : 개발자가 Entity에 대한 custom method 작성 가능, 이후 엔티티 속성이 변경되어도 해당 파일은 보존
- PostEntity + CoreDataProperties : Entity의 attribute을 property로 매핑해줌 , 속성 변경시 자동생성
-
PersistentController
- 전체 데이터 모델을 관리하는 NSPersistentContainer를 초기화
- xcdatamodel에서 설정한 ManagedDataModel(schema)를 Persistent store Coordinator를 이용 Store(sqlite)에 설정
- NSPersistentStoreDescription를 이용 Store 세부 옵션 설정
- 전체 데이터 모델을 관리하는 NSPersistentContainer를 초기화
-
CoreDataManager
- PersistentContainer로부터 mainContext(viewContext)를 가져와 엔티티를 관리
- mainContext를 통해 create entity, dirty checking, lazy loading(faluting), flushing을 통해 저장로직을 최적화
- store에 쿼리를 보내기 위해서는 대상이 되는 entity에 대한 NSFetchRequest를 구성
- NSPredicate를 통해 복잡한 쿼리를 구성해 세부 fetch가 가능
- Post
- Persistent 계층과 분리를 위해서 Application 계층에서 사용될 별도의 model을 구성
- 해당 model은 static 메서드를 통해 PostEntity를 변환
- model로 변환시 AVPlayer를 초기화해 프로퍼티로 저장