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];
    
    评论

报告相同问题?

悬赏问题

  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划