2016-02-16 53 views
0

我有一个基于雨燕的iOS应用。我正尝试使用其中一种Swift排序方法,通过“createdAt”NSDate属性对我的对象数组进行排序。无法将类型“AnyObject”的回归表达式返回类型“NSComparisonResult”

我的数组有一堆PFObject - 这些对象具有不同的属性,包括名为“createdAt”的NSDate属性。

所有我想做的事,就是下令阵列,使这是最古老的对象,被发送到阵列的底部。

这里是我的代码:

let sortedArray = (self.statusData.copy() as! NSArray).sortedArrayUsingComparator { (obj1, obj2) -> NSComparisonResult in 

    if (((obj1 as! PFObject).createdAt?.compare((obj2 as! PFObject).createdAt!)) == NSComparisonResult.OrderedDescending) { 
     return obj2 
    } 

    else { 
     return obj1 
    } 
} 

然而,当我尝试返回的对象,我得到以下错误:

Cannot convert return expression of type 'AnyObject' to return type 'NSComparisonResult'

我不明白什么是错的,为什么不能我只是返回确定我是否陈述的日期比较结果?

谢谢你的时间,丹。

+1

你没回'NSComparisonResult',你返回'obj2'和'obj1' – Breek

+0

@Breek但我需要的方法'''compare'' '为了比较两个'''NSDate'''值。我不能只是不'''返回OBJ 2> obj1''' – Supertecnoboff

+1

thislooksfun有你的答案:) – Breek

回答

3

你的问题是,它期待的NSComparasonResult返回类型,你就返回一个AnyObject。但是,您已经在现有的代码中获得了NSComparasonResult。因此,简单地用这个代替了这一切:

let sortedArray = (self.statusData.copy() as! NSArray).sortedArrayUsingComparator { (obj1, obj2) -> NSComparisonResult in 
    return (obj1 as! PFObject).createdAt?.compare((obj2 as! PFObject).createdAt!) 
} 
+0

阿右.....我是从字面上返回错误的数据....谢谢 – Supertecnoboff

相关问题