मैं एक अलग विधेय जो एक बूलियन मान का उपयोग कर सेट किया जाता है का उपयोग कर मेरी NSFetchedResultsController से डेटा को फिर से लाएं करना चाहते हैं। डेटा का एक नया सेट लाने के लिए मैं NSFetchedResultsController को रीफ्रेश कैसे करूं?NSFetchedResultsController को फिर से लाएं ताज़ा?
- (void)refreshFetchedResultsController {
NSLog(@"refreshFetchedResultsController");
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error]) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"Error loading data",
@"Error loading data")
message:[NSString stringWithFormat:
NSLocalizedString(@"Error was: %@, quitting.", @"Error was: %@, quitting."),
[error localizedDescription]]
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", @"Cancel")
otherButtonTitles:nil];
[alert show];
}
}
जो
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
NSLog(@"i was executed.");
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
TapAppDelegate *appDelegate = (TapAppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Favorite" inManagedObjectContext:managedObjectContext];
NSString *sectionKey = @"favname";
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"favname" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
if(showAll == NO){
if(isXSelected == NO){
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isFirst == TRUE"];
[fetchRequest setPredicate:predicate];
}
if(isXSelected == YES){
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"isFirst == FALSE"];
[fetchRequest setPredicate:predicate];
}
}
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *frc = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:sectionKey
cacheName:nil];
[sortDescriptor release];
[sortDescriptors release];
frc.delegate = self;
_fetchedResultsController = frc;
[fetchRequest release];
return _fetchedResultsController;
}
मैंने यह किया है, लेकिन जब मैं समारोह को याद करता हूं, तो यह नया अनुरोध निष्पादित नहीं करता है। (ब्यूरोन्स के साथ बयान जारी किए जाने पर मेरी भविष्यवाणियों को लपेटा जाता है)। –
दरअसल, आप सही हैं। उसके लिए माफ़ करना। मदद के लिए बहुत बहुत धन्यवाद। –
@corykilger, धन्यवाद! [NSFetchedResultsContrller deleteCacheWithName: कैशनाम]; वही था जो मुझे चाहिए था! – daveomcd