使用 nsset 键值对数组进行排序
sorting array using nsset key value
在我的项目中,我有一些自定义数组 objects.Each object 将采用以下格式。
{
enrollementStatus = 0;
enrollementType = 1;
titles = (
"0x7b316eb0 <x-coredata://6F003DDD-D6CD-4514-B565-FEF9203F188C/CourseText/p246>"
);}
在这个 object 中,标题是 nsset type.while 打印这个 object,它看起来像
( "<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 object) 标题(字母顺序)对这个数组进行排序。请给我一个建议
您可以使用 NSSortDescriptor
对 NSSet 进行排序并创建一个排序的 NSArray
NSSortDescriptor *titleSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES];
NSArray *sortedObjects = [titles sortedArrayUsingDescriptors:@[titleSortDescriptor]];
编辑 1
根据评论更新答案:
据我了解,您的 object 结构是这样的:
- YourCustomObject 数组,其中 YourCustomObject 包含一个
NSSet
称为 标题。
- titles 包含 object of class CourseText
- CourseText 有一个 属性 title
- 您想根据 CourseText[=] 的 title 属性 对 YourCustomObject 的数组进行排序40=].
为此,您可以使用 NSArray
的 sortedArrayUsingComparator
方法。
//arrayOfCustomObjects is the array that contains your objects to be sorted
//Replace YourCustomObject with the actual class of the objects
NSArray* sortedArray = [arrayOfCustomObjects sortedArrayUsingComparator:^NSComparisonResult(YourCustomObject* obj1, YourCustomObject* obj2) {
NSString* title1 = ((CourseText*)obj1.titles.anyObject).title;
NSString* title2 = ((CourseText*)obj2.titles.anyObject).title;
return [str1 compare:str2];
}];
在我的项目中,我有一些自定义数组 objects.Each object 将采用以下格式。
{
enrollementStatus = 0;
enrollementType = 1;
titles = (
"0x7b316eb0 <x-coredata://6F003DDD-D6CD-4514-B565-FEF9203F188C/CourseText/p246>"
);}
在这个 object 中,标题是 nsset type.while 打印这个 object,它看起来像
( "<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 object) 标题(字母顺序)对这个数组进行排序。请给我一个建议
您可以使用 NSSortDescriptor
对 NSSet 进行排序并创建一个排序的 NSArrayNSSortDescriptor *titleSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES];
NSArray *sortedObjects = [titles sortedArrayUsingDescriptors:@[titleSortDescriptor]];
编辑 1 根据评论更新答案:
据我了解,您的 object 结构是这样的:
- YourCustomObject 数组,其中 YourCustomObject 包含一个
NSSet
称为 标题。 - titles 包含 object of class CourseText
- CourseText 有一个 属性 title
- 您想根据 CourseText[=] 的 title 属性 对 YourCustomObject 的数组进行排序40=].
为此,您可以使用 NSArray
的 sortedArrayUsingComparator
方法。
//arrayOfCustomObjects is the array that contains your objects to be sorted
//Replace YourCustomObject with the actual class of the objects
NSArray* sortedArray = [arrayOfCustomObjects sortedArrayUsingComparator:^NSComparisonResult(YourCustomObject* obj1, YourCustomObject* obj2) {
NSString* title1 = ((CourseText*)obj1.titles.anyObject).title;
NSString* title2 = ((CourseText*)obj2.titles.anyObject).title;
return [str1 compare:str2];
}];