当前位置:  开发笔记 > 编程语言 > 正文

Swift sortinplace二进制运算符>不能应用于两个nsnumber操作数

如何解决《Swiftsortinplace二进制运算符>不能应用于两个nsnumber操作数》经验,为你挑选了1个好方法。

我一直在玩swift学习核心数据.我有一个数组填充了具有各种属性的Person核心数据对象.以下是我遇到问题的属性:

@NSManaged var id: Int

在我的托管对象模型中,id属性设置为Int32.我发现在64位架构上使用它会引发错误:属性setId:是类'Person'上的64位标量类型,它与其实体的属性的32位scalart类型不匹配.....如果我理解正确我的设备使用的是64位Int而不是32位,这就是为什么我应该使用@NSManaged var id:NSNumber?代替.我在person的托管对象子类中修复了这个问题,但在数组中我填充了Person对象,我想根据id属性对其进行排序,使用:

people.sortInPlace({$0.id > $1.id})

将我的托管对象子类中的id属性更改为NSNumber后,我得到错误,我不能在两个NSNumber操作数上使用>二元运算符.我现在如何根据id属性进行排序?



1> matthew..:

废话我是一个白痴,我发布这个,我意识到我想做什么.NSNumber有一个intValue函数!只需将其改为

people.sortInPlace{($0.id.intValue > $1.id.intValue)}

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有