从数据库中提出 Friend
目标,条件是匹配NSFetchedResultsController
给出的user
部分。如下:
- (NSFetchedResultsController *)fetchedFriendsResultsController
{
if (_fetchedFriendsResultsController != nil) {
return _fetchedFriendsResultsController;
}
//Get the correct array of friends for that user
NSFetchRequest *fetchRequestItems = [[NSFetchRequest alloc] init];
NSEntityDescription *entityItem = [NSEntityDescription entityForName:@"Friend" inManagedObjectContext:self.managedObjectContext];
[fetchRequestItems setEntity:entityItem];
User* myUser = [DataBaseManager getCurrentUser:managedObjectContext];
[fetchRequestItems setPredicate:[NSPredicate predicateWithFormat:@"user == %@", myUser]];
//Sort by name descending
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequestItems setSortDescriptors:sortDescriptors];
NSFetchedResultsController *fetchedItemsResultsController =[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequestItems managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
_fetchedFriendsResultsController = fetchedItemsResultsController;
return _fetchedFriendsResultsController;
}
此代码运行正常,所有的friend都成功按字母顺序递减排列。
现在我需要一个特殊的friend对象,名字不是按照字母顺序。然后将它们排在其他friend之前。
判断条件是where 'name' == @"SPECIFIC_NAME"。
应该怎么实现?是不是要将这个特殊case添加到分类描述符或者Predicate中?
NSDate *endDate = [NSDate date]; NSTimeInterval timeInterval= [endDate timeIntervalSinceReferenceDate]; timeInterval -=3600*24; NSDate *beginDate = [NSDate dateWithTimeIntervalSinceReferenceDate:timeInterval]; //过期的日期 NSPredicate *predicate_date = [NSPredicate predicateWithFormat:@"date <= %@", beginDate]; [fetchRequest setPredicate:predicate_date];
来源于网络,供您参考
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。