我正在尝试在UITableView
与NSFetchedResultsController
数据库关联的情况下显示一些 Spot。
问题是我需要按与特定位置的距离(无线电)过滤结果。我读到无法NSPredicate
计算距离,因此我通过与坐标的简单比较来获取位置周围区域中的所有点。这给了我一个围绕位置的广场。然后,我想迭代结果fetchedObjects
并删除不在区域中的结果。
- (NSFetchedResultsController *)newFetchedResultsControllerWithSearch:(NSString *)searchString{
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:sectionName
cacheName:@"Stores"];
aFetchedResultsController.delegate = self;
NSError *error = nil;
if (![aFetchedResultsController performFetch:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
// ITERATE FETCHED OBJECTS TO FILTER BY RADIO
int n = [aFetchedResultsController.fetchedObjects count];
NSLog(@"Square result count: %i",n);
self.footerLabel.text = [NSString stringWithFormat:NSLocalizedString(@"%i Spots", @"%i Spots"),n];
return aFetchedResultsController;
如何aFetchedResultsController
在返回之前从 .fetchedObjects 中删除对象?UITableView
它会改变like中使用的方法[fetchedResultsController objectAtIndexPath:indexPath]
吗?
谢谢