내 현재 설정 :NSFetchedResultsController 발사하지 controllerDidChangeContent
나는 내가있는 tableview에 표시하고자하는 데이터를 전환하는 UISegmentedControl을 사용하려는. 나는 webservice에 대한 모든 편안한 대화를 위해 restkit을 사용 해왔다. 데이터는 coredata sqlite 저장소에 저장됩니다. 다음과 같은 방식으로 NSFetchedResultsController를 설정했습니다.
-(void)setupFetchedResultsControllerWithFetchRequest:(NSFetchRequest *)fetchRequest{
self.fetchedResultsController=nil;
NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"address" ascending:YES];
fetchRequest.sortDescriptors = @[descriptor];
NSError *error = nil;
// Setup fetched results
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
[self.fetchedResultsController setDelegate:self];
BOOL fetchSuccessful = [self.fetchedResultsController performFetch:&error];
// NSAssert([[self.fetchedResultsController fetchedObjects] count], @"Seeding didn't work...");
if (! fetchSuccessful) {
ShowAlertWithError(error);
}
}
그리고 이것은 fetchedresultscontroller로 전달하기위한 페치 요청을 작성한 방법입니다.
-(NSFetchRequest *)prepareFetchRequestForGlobalAtm{
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"AtmBranches"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"branchType='0'"];
[fetchRequest setPredicate:predicate];
return fetchRequest;
}
나는 segmentedControlToggledMethod에서 이들을 적절하게 결합했습니다.
[self setupFetchedResultsControllerWithFetchRequest:[self prepareFetchRequestForGlobalAtm]];
//Restkit Call
[self loadGlobalAtms];
NSFetchedResultsController의 위임 방법입니다. 여기
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
[self.locationsTableView reloadData];
}
내 논리는 모든 전환이 전달 된 값에 따라 NSFetchedResultsController를 설정하는 방법을 해고해야한다는 것입니다. 내가 웹 서비스에서 들어오는 값을 가지고 캐싱되고 있음을 로그에서 명확하게 볼 수 있지만 tableview 자체는 절대 채워지지 않습니다.
ManagedObjectContext
대리인의 콜백을받을 수작동하지 않습니다. tableview 그냥 재부팅 실 거예요. –
당신의 테이블 뷰는 다시로드 할 때 필요하지 않습니다? – Suen
[self loadGlobalAtms]를 호출 한 후; managedObjectContext를 사용하여 데이터를 저장 해 봤습니까? – Suen