草庐IT

NSSortDescriptor

全部标签

objective-c - NSSortDescriptor:同时对多个键进行自定义比较

我有一个自定义对象,其中包含基于时间段的信息,例如属性endCalYear、endMonth和periodLength,它们指示每个时间段的结束及其长度。我想创建一个基于NSSortDescriptor的排序方法或其他排序方法,它结合了这三个属性并允许同时在所有三个键上对该对象进行排序。例子:EndCalYearendMonthperiodLength(months)sortOrder201266120126322012333201112124排序算法将完全根据我自己的算法自行决定。我如何编写这样的算法?基于block的sortDescriptorWithKey:ascending:c

ios - 通过对多关系的计数使用 NSSortDescriptor 获取 CoreData

我有2个具有以下关系的CoreData实体(Person、Pet):一个人可以拥有多个宠物。因此,存在来自Person->Pet的一对多关系。我想获取所有的人,按照他们拥有的宠物数量排序,拥有最多宠物的人排在第一位,拥有最少宠物的人排在最后。在获取人员列表时,我尝试使用如下所示的NSSortDescriptor:[NSSortDescriptorsortDescriptorWithKey:@"pets.count"ascending:NO]我认为“人”的“宠物”属性允许我使用NSSet的计数属性进行排序。唉,CoreData提示这个错误:Fetchexceptionto-manykey

ios - 控制 NSSortDescriptor 对 Core Data 中的 nil 值进行排序的方式

对于带有核心数据的字符串,给定以下NSSortDescriptor:[NSSortDescriptorsortDescriptorWithKey:@"series"ascending:trueselector:@selector(caseInsensitiveCompare:)]结果按字母升序正确排序。然而,在series为nil的情况下,具有nil值的字符串被放置在顶部,之后对非nil值进行排序,例如:[nil,nil,nil,A,B,C,D...]有什么办法可以控制这种行为吗?核心数据不允许自定义选择器。这是一个与我类似的问题(但是没有解决CoreData的限制):NSSortDe

ios - 使用 NSSortDescriptor 按时间倒序对 CoreData 进行排序

我有一个使用TableView设置的核心数据数据库,我正在尝试将其设置为TableView中显示的对象按时间倒序显示的位置。我正在尝试使用NSSortDescriptor执行此操作,但无法弄清楚如何按相反的时间顺序对其进行排序。有任何想法吗?谢谢。这是我的代码:funcgetCoreData(){varappDel:AppDelegate=UIApplication.sharedApplication().delegateasAppDelegatevarcontext:NSManagedObjectContext=appDel.managedObjectContext!varreq:N

iphone - 使用 NSSortDescriptor 像 NSInteger 一样对 NSString 值进行排序

我已经创建了一个排序描述符来对来self的服务器的plist响应进行排序。这适用于值高达9的排序键。对于超过10个项目,我看到排序键按顺序排列的突然结果=1,10,11,2,3,4,5,6,7,8,9NSSortDescriptor*aSortDescriptor=[[NSSortDescriptoralloc]initWithKey:@"sort"ascending:YES];self.myList=[NSMutableArrayarrayWithArray:[unsortedListsortedArrayUsingDescriptors:[NSArrayarrayWithObjec

ios - Swift 中的 NSSortDescriptor

我正在开发一个iOS应用程序,我将数据存储在CoreData中,并将这些数据加载到UITableView中。数据实体有一个名为id的属性,它是一个包含A后跟数字(即“A1”、“A2”等)的字符串。当我使用此代码进行排序时,我最终会按字典顺序对表格进行排序(即“A1”“A10”“A11”“A12”“A2”“A3”等)letsortDescriptor=NSSortDescriptor(key:"id",ascending:true)fetchRequest.sortDescriptors=[sortDescriptor]我真正想要的是按数字排序,如您所料。我该怎么做呢?我知道NSComp

ios - 对 NSDictionary 对象的 NSArray 进行排序的最佳方法?

我正在努力尝试对字典数组进行排序。我的字典有几个值,包括兴趣、价格、受欢迎程度等。有什么建议吗? 最佳答案 像这样使用NSSortDescriptor..NSSortDescriptor*descriptor=[[NSSortDescriptoralloc]initWithKey:@"interest"ascending:YES];stories=[storiessortedArrayUsingDescriptors:@[descriptor]];recent=[storiescopy];stories是要排序的数组。recent是

ios - 对 NSDictionary 对象的 NSArray 进行排序的最佳方法?

我正在努力尝试对字典数组进行排序。我的字典有几个值,包括兴趣、价格、受欢迎程度等。有什么建议吗? 最佳答案 像这样使用NSSortDescriptor..NSSortDescriptor*descriptor=[[NSSortDescriptoralloc]initWithKey:@"interest"ascending:YES];stories=[storiessortedArrayUsingDescriptors:@[descriptor]];recent=[storiescopy];stories是要排序的数组。recent是