• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 对自定义对象数组中的数字进行排序

[复制链接]
菜鸟教程小白 发表于 2022-12-13 00:05:13 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我试过 this , thisthis链接

我有一个数组(比如 personObjectArray),其中包含 Person 类的对象。

Person 有 2 个变量说, NSString *name, NSString *age.

这里 age 的类型为 nsstring。

现在当我像下面这样排序时,

personObjectArray = [[personObjectArray sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2){

    return [p1.age compare:p2.age];

}] mutableCopy];

是这样的,

1, 11, 123 2、 23, 3...它排序像字母顺序不考虑它作为一个数字。

所以我像这样更改我的代码,

personObjectArray = [[personObjectArray sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2){

    return [[p1.age intValue] compare:[p2.age intValue] ];

}] mutableCopy];

它说,Bad receiver type 'int'

我现在如何排序? 请不要告诉我在 Person 类中更改 age 的数据类型。我无法改变它。任何帮助表示赞赏(:,感谢您的时间。



Best Answer-推荐答案


您在原始(非对象)类型 int 上使用了比较,因此它不起作用。

试试这个

 return [@([p1.age intValue]) compare([p2.age intValue])];

这里,我们使用 NSNumber(这是一个对象类型)来比较 int 值

@() is a NSNumber's literal

希望这会对你有所帮助.. (:

关于ios - 对自定义对象数组中的数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696583/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap