无法将 'AnyObject' 类型的 return 表达式转换为 return 类型 'NSComparisonResult'
Cannot convert return expression of type 'AnyObject' to return type 'NSComparisonResult'
我有一个基于 Swift 的 iOS 应用程序。我正在尝试使用 Swift 排序方法之一按 "createdAt" NSDate
属性.
对我的对象数组进行排序
我的数组有一堆 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
}
}
然而,当我尝试 return 对象时,出现以下错误:
Cannot convert return expression of type 'AnyObject' to return type
'NSComparisonResult'
我不明白怎么了,为什么我不能只 return 确定我的 if 语句的日期比较结果?
谢谢你的时间,丹。
您的问题是它期待 return 类型的 NSComparasonResult
而您 return 正在 AnyObject
。但是,您已经在现有代码中获得了 NSComparasonResult
。因此,只需将所有内容替换为:
let sortedArray = (self.statusData.copy() as! NSArray).sortedArrayUsingComparator { (obj1, obj2) -> NSComparisonResult in
return (obj1 as! PFObject).createdAt?.compare((obj2 as! PFObject).createdAt!)
}
我有一个基于 Swift 的 iOS 应用程序。我正在尝试使用 Swift 排序方法之一按 "createdAt" NSDate
属性.
我的数组有一堆 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
}
}
然而,当我尝试 return 对象时,出现以下错误:
Cannot convert return expression of type 'AnyObject' to return type 'NSComparisonResult'
我不明白怎么了,为什么我不能只 return 确定我的 if 语句的日期比较结果?
谢谢你的时间,丹。
您的问题是它期待 return 类型的 NSComparasonResult
而您 return 正在 AnyObject
。但是,您已经在现有代码中获得了 NSComparasonResult
。因此,只需将所有内容替换为:
let sortedArray = (self.statusData.copy() as! NSArray).sortedArrayUsingComparator { (obj1, obj2) -> NSComparisonResult in
return (obj1 as! PFObject).createdAt?.compare((obj2 as! PFObject).createdAt!)
}