【问题标题】:Core Data Sort By Multiple Sort Descriptors With CaseInsensitiveCompare使用 CaseInsensitiveCompare 按多个排序描述符对核心数据进行排序
【发布时间】:2013-01-12 13:37:26
【问题描述】:

我有一个 Word : NSManagedObject 子类,我试图按单词的第一个字母进行分组。然后在每个部分中,我尝试按长度属性进行排序,同时在单词具有相同长度时保持字母数字排序。所以它看起来像

一句话

  • 苹果长度 = 5
  • 轴长 = 3
  • am 长度 = 2

B 字

  • 祸根长度 = 4
  • 船长 = 4
  • 袋长 = 3

所以我先初始化一个新的 NSFetchRequest。然后我添加我的排序描述符,首先按值排序(只是单词),然后按长度排序。最后初始化我的 fetchedResultsController 并使用 group 值按第一个字母对它们进行分组。 这是我的代码,但我没有得到想要的结果。任何帮助将不胜感激。

@interface Word : NSManagedObject

@property (nonatomic, retain) NSString * value;
@property (nonatomic, retain) NSString * group;
@property (nonatomic, retain) NSNumber * length;

@end

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Word"];
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"value" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)],
                               [NSSortDescriptor sortDescriptorWithKey:@"length" ascending:NO], nil];

self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                                                        managedObjectContext:self.wordDatabase.managedObjectContext
                                                                          sectionNameKeyPath:@"group"
                                                                                   cacheName:nil];

【问题讨论】:

    标签: ios5 core-data nsfetchedresultscontroller nssortdescriptor


    【解决方案1】:

    第一个排序描述符应该是用作sectionNameKeyPath的键,第二个排序描述符应该是键length,最后一个是value

    request.sortDescriptors = [NSArray arrayWithObjects:
        [NSSortDescriptor sortDescriptorWithKey:@"group" ascending:YES],
        [NSSortDescriptor sortDescriptorWithKey:@"length" ascending:NO],
        [NSSortDescriptor sortDescriptorWithKey:@"value" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)],
        nil];
    

    【讨论】:

      猜你喜欢
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多