gpt4 book ai didi

swift - 无法将类型 'AnyObject' 的返回表达式转换为返回类型 'NSComparisonResult'

转载 作者:行者123 更新时间:2023-11-28 11:10:26 25 4
gpt4 key购买 nike

我有一个基于 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
}
}

但是,当我尝试返回对象时,出现以下错误:

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

我不明白怎么了,为什么我不能只返回由我的 if 语句确定的日期比较结果?

谢谢你抽出时间,丹。

最佳答案

您的问题是它期望返回类型为 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!)
}

关于swift - 无法将类型 'AnyObject' 的返回表达式转换为返回类型 'NSComparisonResult',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35435600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com