eXit_door 2013-06-06 02:54 采纳率: 0%
浏览 2217

使用NSPredicate放置条目

从数据库中提出 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中?

谢谢

  • 写回答

1条回答

  • Chengzi_963 2013-06-06 07:08
    关注

    可能是你需要一个attributesortDescriptor

    如果是特殊的friend,用类似isSpecial带有属性显示。 作为第一sortDescriptor添加:

    NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"isSpecial" ascending:YES];
    NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO];
    
    NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor1, sortDescriptor2, nil];
    [fetchRequestItems setSortDescriptors:sortDescriptors];
    
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料