ios – NSSortDescriptor – 基于另一个数组对描述符进行排序

ios – NSSortDescriptor – 基于另一个数组对描述符进行排序,第1张

概述我有一个核心数据应用程序.我想获取一种对象,用户.用户拥有属性userId. 我有另一个带有userIds的数组,[1,4,3,5].我想创建一个NSSortDescriptor,它根据数组中userIds的顺序对我的Userobjects进行排序. 这可能吗,我应该怎么做? 更新 我现在尝试了以下内容. >我在我的User对象中添加了一个可转换的属性,在那里我存储了用户id数组. >我尝试了以下 我有一个核心数据应用程序.我想获取一种对象,用户.用户拥有属性userID.

我有另一个带有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

还想在User对象之间添加一个关系Followers.任何想法应该如何看待这种关系?见附图.那是对的吗?

解决方法 使用排序描述符无法完成此 *** 作,您必须在获取结果后应用自定义比较器函数:

NSArray *userIDs = ...; // e.g. @[@1,@4,@3,@5]NSArray *results = ...; // result of fetch requestNSArray *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 – 基于另一个数组对描述符进行排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1075714.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存