내 Core Data Entity "Book"에 부울 속성이 있습니다. "wasViewed"(NSNumber numberWithBool) 북을 "보았는지"를 알려줍니다.FetchedResults 집합의 각 결과에 대한 속성 값 설정
"모든"NSManagedObjects "Book"에 대해이 속성을 "다시 설정"하고 싶습니다. 그래서 나는 세션들 사이에서 그것들을 모두 NO로 설정할 수 있습니다. 이것은 잘 작동하고
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"wasViewed == %@", [NSNumber numberWithBool:YES]];
// code for setting entity, request etc...
NSMutableArray *mutableFetchResults = [[[managedObjectContext executeFetchRequest:request error:&error] mutableCopy] autorelease];
그러나 지금은 이런 식으로, 각 도서 객체를 통해 이동 루프를 설정하는 것이 필요 : 내가 이렇게 모든 책을 검색하는 자 NSPredicate를 사용
for(Book *b in mutableFetchResults) {
[b setWasViewed:NO]
}
검색하는 대신 조건부에 맞는 각 요소에 대해 작업을 수행 할 수있는 방법이 있습니까? managedObjectContext
에 executeFetchRequest
대신 executeOperationOnFetchRequestResults
또는 그 라인을 따라 표시 될 수 있습니다.
주어진 입력에 감사드립니다.
안녕 CJ 고맙습니다. 저는 사실 단일 속성을 true로 설정하는 것 외에는 필요하지 않은 결과를 가져 오는 것에 대해 걱정했습니다. 가져 오기를 위해 makeObjectsPerformSelector와 같은 것이 있었으면합니다. 하지만 일반적으로 핵심 데이터를 사용하는 방식과 다른 것 같습니다. 얻고, 반대하고, 변경하고, 유지하십시오. "원 라이너"를 좋아해 루프처럼 읽기 쉽고 컴팩트합니다. – RickiG
추 신 : 나는 "lastViewed"Date를 가지고 있는데, 이것은 특별한 경우를위한 것입니다. bot도 가져 오기와 루프를 "예약"하고 싶지 않은 이유가 바로 이것입니다. :). 여전히 좋은 충고! – RickiG