大佬教程收集整理的这篇文章主要介绍了ios – NSSortDescriptor – 基于另一个数组对描述符进行排序,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有另一个带有userIds的数组,[1,4,3,5].我想创建一个NSSortDescriptor,它根据数组中userIds的顺序对我的Userobjects进行排序.
这可能吗,我应该怎么做?
更新
我现在尝试了以下内容.
>我在我的User对象中添加了一个可转换的属性,在那里我存储了用户id数组.
>我尝试了以下排序描述符:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"userId" ascending:YES comparator:^NSComparisonResult(id obj1,id obj2) { NSUInteger idx1 = [self.user.followingIds indexOfObject:[obj1 valueForKey:@"userId"]]; NSUInteger idx2 = [self.user.followingIds indexOfObject:[obj2 valueForKey:@"userId"]]; return idx1 - idx2; }];
我收到以下错误:
SerIoUs application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NsmanagedObjectContextObjectsDidChangeNotification. [<__NSCFnumber 0xa337400> valueForUndefinedKey:]: this class is not key value coding-compliant for the key userId. with userInfo { NSTargetObjectUserInfoKey = 2502; NSUnkNownUserInfoKey = userId; } *** TerminaTing app due to uncaught exception 'NSUnkNownKeyException',reason: '[<__NSCFnumber 0xa337400> valueForUndefinedKey:]: this class is not key value coding- compliant for the key userId.'
更新2
NSArray *userIds = ...; // e.g. @[@1,@4,@3,@5] NSArray *results = ...; // result of fetch request NSArray *sorted = [results sortedArrayUsingComparator:^NSComparisonResult(id obj1,id obj2) { NSUInteger idx1 = [userIds indexOfObject:[obj1 valueForKey:@"userId"]]; NSUInteger idx2 = [userIds indexOfObject:[obj2 valueForKey:@"userId"]]; return idx1 - idx2; }];
以上是大佬教程为你收集整理的ios – NSSortDescriptor – 基于另一个数组对描述符进行排序全部内容,希望文章能够帮你解决ios – NSSortDescriptor – 基于另一个数组对描述符进行排序所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。