0

"name"이라는 엔티티 속성에서 고유 한 결과를 얻으려고합니다. 그 목적으로 NSFetchedResultsController와 함께 Magical Record를 사용하고 있습니다. 모든 것이 작동하지 않아 모든 결과를 얻지 만 고유 한 결과가 아닙니다.magRecord에서 setReturnsDistinctResults를 사용하는 방법은 무엇입니까?

작동하도록 내 코드는 다음과 같습니다 나는 또한 (마법 기록없이) 네이티브 NSFetchedResultsController 방법을 사용하려고

- (NSFetchedResultsController *)fetchedResultsController 
{ 
    if (_fetchedResultsController != nil) { 
     return _fetchedResultsController; 
    } 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"custom == 0"]; 

    [_fetchedResultsController.fetchRequest setReturnsDistinctResults:YES]; 
    [_fetchedResultsController.fetchRequest setResultType:NSDictionaryResultType]; 
    [_fetchedResultsController.fetchRequest setPropertiesToFetch:[NSArray arrayWithObject:@"name"]]; 


    _fetchedResultsController = [MyQuestion fetchAllSortedBy:@"name" 
                ascending:YES 
               withPredicate:predicate 
                groupBy:nil 
                delegate:self]; 


    return _fetchedResultsController; 
} 

,하지만 난 데이터베이스가 난 여전히 나는 어쩌면 때문에, 손상 예외가 얻을 앱 대리인의 Magical Record로 데이터를 초기화합니다.

귀하의 도움과 협조에 감사드립니다.

  1. A에 대한보고,
  2. 하자 MagicalRecord 그래서 그

후 인수 사용자 정의 옵션 페치 요청을 만듭니다

+0

'_fetchedResultsController.fetchRequest'의 속성을 설정했기 때문에 Magical Record는 모르지만 코드는 작동하지 않습니다 ** ** 당신이'_fetchedResultsController'를 초기화하기 전에! –

답변

1

이 경우에 사용하려는 기술에 것은 MR_requestAllSortedBy :라는 nsmanagedobject의 범주 메서드입니다. 그것보다 많은 요청 도우미가 있지만 이것은 올바른 방향으로 당신을 넣을 것입니다. 가져 오기 요청을 생성 한 후에는 setReturnsDistinctResults와 같은 옵션을 설정하십시오. 그런 다음 MagicalRecord 도우미/파이프 라인으로 다시 보내려면 MR_fetchController : ... 메소드를 로컬 사본에 public으로 만들어야합니다. 이 메소드는 가져 오기 요청과 다른 옵션을 취하고 오류 처리 등을 처리합니다.