我有一个名为Event的模型类.
import Foundationimport MapKitpublic class Event { let ID: Int var Title: String? let status: String let location: String var description: String? var latitude: CLLocationdegrees? var longitude: CLLocationdegrees? var startDate: NSDate? var endDate: NSDate? init(ID: Int,location: String,status: String) { self.ID = ID self.location = location self.status = status }}
我从Web API获取事件数据作为JsON响应.然后我通过解析JsON数据创建Event对象并将它们放入一个类型化的数组中(var events = [Event]()).
private func processEventData(data: JsON) { var events = [Event]() if let eventsArray = data.array { for eventObj in eventsArray { let event = Event( ID: eventObj["ID"].int!,location: eventObj["location"].string!,status: eventObj["status"].string! ) event.Title = eventObj["Title"].string event.description = eventObj["description"].string event.latitude = eventObj["lat"].double event.longitude = eventObj["lng"].double event.startDate = NSDate(string: eventObj["start"].string!) event.endDate = NSDate(string: eventObj["end"].string!) events.append(event) } }}
接下来,我需要通过startDate属性值对此数组进行排序.我尝试使用像这样的新Swift标准库函数排序对数组进行排序.
var orderedEvents = events.sort({events.sort({.startDate! < .startDate! })events.sort({ .date.timeIntervalSince1970 < .date.timeIntervalSince1970 }).date.compare(.date) == NSComparisonResult.OrderedAscending })
但奇怪的是我得到以下错误.
无法使用类型为'((_,_) – > _)’的参数列表调用’sort’
我不明白为什么我不能这样排序,因为我有一个类型化的数组.
知道我在这里做错了吗?
解决方法 您无法使用<直接比较日期. *** 作符.从那里,你有几个选择.首先,您可以使用NSDate的比较功能.另一种方法是获取日期的.timeIntervalSince1970属性,这是一个可以直接比较的NSTimeInterval:
总结以上是内存溢出为你收集整理的ios – 使用排序函数[复制]按NSDates排序数组全部内容,希望文章能够帮你解决ios – 使用排序函数[复制]按NSDates排序数组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)