作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试按字母顺序对带有自定义单元格的UTableView进行排序和分段。在我的ViewController中,我有一个下载JSON数据,然后将其存储在Dictionary中的函数。
var attendees = [Attendee]()
var sortedFirstLetters: [String] = []
var sections: [[Attendee]] = [[]]
func downloadAttendeeData(completed: @escaping DownloadComplete) {
let headers: HTTPHeaders = [
"Accept": "application/json;odata=verbose",
"User-Agent": "iOS;iOS"
]
NetworkManager.sharedInstance.manager.request(Attendee_URL, method: .get, headers: headers)
.responseJSON { response in
let result = response.result
if let dict = result.value as? Dictionary<String, AnyObject> {
if let list = dict["d"]?["results"] as? [Dictionary<String, AnyObject>] {
for att in list {
let attendee = Attendee(AttendeeDict: att)
self.attendees.append(attendee)
}
self.tableView.reloadData()
}
}
completed()
}
}
let firstLetters = self.attendees.map { $0.titleFirstLetter }
let uniqueFirstLetters = Array(Set(firstLetters))
self.sortedFirstLetters = uniqueFirstLetters.sorted()
self.sections = self.sortedFirstLetters.map { firstLetter in
return self.names
.filter { $0.titleFirstLetter == firstLetter }
.sorted { $0.titleAD < $1.titleAD }
}
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
searchBar.delegate = self
let firstLetters = self.attendees.map { $0.titleFirstLetter }
let uniqueFirstLetters = Array(Set(firstLetters))
self.sortedFirstLetters = uniqueFirstLetters.sorted()
self.sections = self.sortedFirstLetters.map { firstLetter in
return self.names
.filter { $0.titleFirstLetter == firstLetter }
.sorted { $0.titleAD < $1.titleAD }
}
self.downloadAttendeeData {
}
}
最佳答案
确保从主线程调用tableView.reloadData()
像这样:
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
关于ios - 使用转义闭包对AlamoFire中的UITableViewData进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46065134/
我是一名优秀的程序员,十分优秀!