使用nsset键值排序数组

时间:2016-04-22 09:41:38

标签: ios objective-c sorting core-data nsset

在我的项目中,我有一些自定义对象的数组。每个对象将采用以下格式。

 {
enrollementStatus = 0;
enrollementType = 1;
titles =     (
    "0x7b316eb0 <x-coredata://6F003DDD-D6CD-4514-B565-FEF9203F188C/CourseText/p246>"
);}

在这个对象标题中是nsset type.while打印这个对象,它看起来像

   ( "<CourseText: 0x7b316f60>
     (entity: CourseText; id: 0x7b316eb0 data: 
    {\n    course = \"0x7aa69870 <x-coredata://6F003DDD-D6CD-4514-B565-FEF9203F188C/Course/p11>\";\n  
  descr = \"(null)\";\n   
     lang = \"en-US\";\n  
      title = CSDFFFFF;\n})"

我想根据thistitles(NSSet对象)标题(按字母顺序排序)对此数组进行排序。请给我一个建议

1 个答案:

答案 0 :(得分:1)

您可以使用NSSortDescriptor

对NSSet进行排序并创建排序的NSArray
NSSortDescriptor *titleSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES];
NSArray *sortedObjects = [titles sortedArrayUsingDescriptors:@[titleSortDescriptor]];

修改1 根据评论更新了答案:

根据我的理解,你的对象结构是这样的:

  1. YourCustomObject 的数组,其中 YourCustomObject 包含 NSSet名为 titles
  2. titles 包含类 CourseText的对象
  3. CourseText 有一个属性 title
  4. 您希望根据 CourseText title 属性对 YourCustomObject 数组进行排序。
  5. 为此,您可以使用sortedArrayUsingComparator的{​​{1}}方法。

    NSArray