If you are using an NSFetchedResultsController and fetching the data using an NSPredicate, you may have seen this nasty message:
12
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** - \
[CALayerArray evaluateWithObject:]: unrecognized selector
In my case, this was due to releasing the NSPredicate object too soon. Simply remove the release message and things will work fine again.
1234567891011121314151617181920212223
-(NSFetchedResultsController*)fetchedResultsController{if(fetchedResultsController==nil){NSFetchRequest*request=[[NSFetchRequestalloc]init];[requestsetEntity:[NSEntityDescriptionentityForName:@"Task"inManagedObjectContext:managedObjectContext]];[requestsetReturnsObjectsAsFaults:NO];NSPredicate*pred=[NSPredicatepredicateWithFormat:@"taskList = %@",taskList];[requestsetPredicate:pred];NSSortDescriptor*sort=[[NSSortDescriptoralloc]initWithKey:@"name"ascending:YES];[requestsetSortDescriptors:[NSArrayarrayWithObject:sort]];NSFetchedResultsController*aFRC=[[NSFetchedResultsControlleralloc]initWithFetchRequest:requestmanagedObjectContext:managedObjectContextsectionNameKeyPath:nilcacheName:nil];aFRC.delegate=self;self.fetchedResultsController=aFRC;[aFRCrelease];[sortrelease];// [pred release]; don't do this ... shouldn't be releasing it anyway (I didn't allocate the memory for it).[requestrelease];}returnfetchedResultsController;}