2016-07-14 2 views
0

나는 다음과 같은 조건이 설정되었다했습니다 페치 요청이 다음 제품을 포함하는 Activity입니다NSFetchedResultController는 "두 관계를"개체의 변화를 볼 수 없습니다 멀리

fetchRequest.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ 
    NSPredicate(format: "start >= %@", NSDate.init(timeIntervalSinceNow: 0).dateByRemovingTime()), 
    NSPredicate(format: "product.filter.enabled == %@", true) 
]) 

엔티티. 그런 다음 각 제품에는 사용 또는 사용 불가능한 필터가 있습니다.

부울 enabled이 변경되면 다시로드해야합니까?

그렇지 않은 경우 어떻게해야 트리거 할 수 있습니까? enabled을 변경하면 willChangeValueForKeydidChangeValueForKey으로 변경 하시겠습니까?

+0

중복 검색 했습니까? 많은 이가 있습니다 – Wain

+0

[this] (http://stackoverflow.com/q/7533849/2446155), [this] (http://stackoverflow.com/q/4010334/2446155) 및 [this] (http : /stackoverflow.com/a/12379824/2446155) –

답변

0

NSFetchedResultController는 KVO 컨트롤러이며 컨트롤러에서 가져온 마법사 데이터 만 볼 수 있거나 컨트롤러를 가져온 후에 삽입 할 수 있습니다. 컨트롤러에없는 데이터 마이트를 업데이트하거나 데이터의 관계 데이터를 업데이트하면 컨트롤러는 델리게이트 또는 KVO를 호출하지 않습니다. 문제를 저장하는 방법이 있습니다. 1. 관계 데이터가 변경된 경우 엔터티에 BOOL 특성 (예 : "hasChanged")을 추가 한 다음 "hasChanged"를 변경할 수 있습니다. 2. 관계 데이터에 KVO를 추가 할 수 있습니다