Ios 按NSDate对NSManagedObjects的NSSet排序会产生错误

Ios 按NSDate对NSManagedObjects的NSSet排序会产生错误,ios,core-data,nsmanagedobject,Ios,Core Data,Nsmanagedobject,我正在尝试拉入一个RSS提要并按pubDate排序。当我检查“updated”属性时,大多数情况下它是正确的,并给我一个正确的日期,但当我尝试从集合转换为排序数组时,我从排序中得到随机结果。我已经追踪到这样一个事实:当sort进行比较时,属性(这是一个NSDate,参见图1)进入并作为一个u nscfn数字进行比较!(见图2) 任何帮助或想法都将不胜感激 图1 图2 我假设比较器块仅用于诊断目的?实际上,您不需要为NSDate或任何提供的属性类型类提供比较器 如果调试器报告date1对象属于N

我正在尝试拉入一个RSS提要并按pubDate排序。当我检查“updated”属性时,大多数情况下它是正确的,并给我一个正确的日期,但当我尝试从集合转换为排序数组时,我从排序中得到随机结果。我已经追踪到这样一个事实:当sort进行比较时,属性(这是一个NSDate,参见图1)进入并作为一个u nscfn数字进行比较!(见图2)

任何帮助或想法都将不胜感激

图1

图2


我假设比较器块仅用于诊断目的?实际上,您不需要为NSDate或任何提供的属性类型类提供比较器

如果调试器报告
date1
对象属于NSNumber群集类类型,则在某个地方将
NSCFNumber
实例分配给
updated
属性。调试器忽略诸如强制转换之类的因素,而只是简单地询问对象它的类是什么。如果对象表示它是一个
NSCFNumber
,那么不管代码如何处理它,它都是

为什么会发生这种情况,根据提供的代码,我不能说

在尝试排序之前,您可以尝试记录
updated
属性的值和类,以查看其报告是否正确。我还建议分解整个生产线。嵌套所有这些方法调用当然会起作用,但它容易出错,并且很难调试