I am trying to filter some managed objects. The result though is zip.
The filter is "name". Name is an element provided by the root view to this detail view. Name logs ok :
[48582:2754928] name: To Be
[48582:2754928] predicate: name == @"name"
name = [self.detailItem valueForKey:@"name"];
NSError *error;
if (![[self fetchedResultsController] performFetch:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
and the FetchResultsController is as follows:
NSError *error = nil;
name = [self.detailItem valueForKey:@"name"];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"VerbEntity" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
predicate = [NSPredicate predicateWithFormat:@"name == %@",@"name"];
NSLog(@"name: %@", name);
fetchRequest.predicate = predicate;
NSLog(@"predicate: %@", predicate);
// Create the sort descriptors array.
NSArray *sortDescriptorArray = nil;
// Declare sort descriptors
NSSortDescriptor *sortDescriptorPrimary = nil;
sortDescriptorPrimary = [[NSSortDescriptor alloc] initWithKey:@"position" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
// Set sort descriptor array
sortDescriptorArray = @[sortDescriptorPrimary];
// Apply sort descriptors to fetch request
[fetchRequest setSortDescriptors:sortDescriptorArray];
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
NSLog(@"fetchedObjects count: %lu", (unsigned long)fetchedObjects.count);
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
Does anything stand out as wonky? Thanks for any help.
It looks like your _fetchedResultsController doesn't have the fetch request set on it. Maybe there's more than this code snippet is showing... But this might work
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"VerbEntity"];
request.predicate = [NSPredicate predicateWithFormat:@"name == %@",@"name"];
// Note: Sort descriptors available depend on the backing store type.
NSSortDescriptor *sortDescriptorPrimary = [[NSSortDescriptor alloc] initWithKey:@"position"
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)];
request.sortDescriptors = @[sortDescriptorPrimary];
// The request needs to be set on the controller.
NSFetchedResultsController *controller =
[[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
// The controller needs to perform the fetch.
[controller performFetch:nil]; // Optionally pass in an NSError.
controller.delegate = self;
_fetchedResultsController = controller;
return controller;