hogumachu / AWord

영어 단어장 애플리케이션
2 stars 0 forks source link

Core Data Relation 문제 #3

Closed hogumachu closed 2 years ago

hogumachu commented 3 years ago

WordSet 으로 Word 에 1:N 으로 접근할 수 있도록 했는데 WordSet 을 선택하면 [Word] 이런 식으로 접근하고 싶은데 검색해도 잘 나오지 않음.

그래서 현재 Word 에 parentIdentity 라는 Attribute 를 생성하였고 WordSet 의 identity 로 filter 를 하여 Word 에 접근함

WordSet 의 identity -> Word 의 parentIdentity

private lazy var sectionModel: WordSectionModel = {
// 1. Word 를 전부 꺼내옴
    let fetchRequest = NSFetchRequest<WordEntity>(entityName: "Word")
// 2. Word 의 definition 으로 정렬함
    let sort = NSSortDescriptor(key: "definition", ascending: true)
    fetchRequest.sortDescriptors = [sort]

// 3. 가져온 값 (WordEntity) 의 parentIdentity 와 WordSet 의 parentIdentity 와 비교하여 값을 찾아서 사용함
    if let words = try? context.fetch(fetchRequest)
        .filter({ $0.parentIdentity == parentIdentity })
        .map({ Word(entity: $0) }) {
            return WordSectionModel(model: 0, items: words)
        }
    return WordSectionModel(model: 0, items: [])
}()