Swift 刷新程序未结束,再次下拉时出现错误
我正在使用Swift,我正在尝试为我的表格添加一个pull to refresh功能,但它不会停止刷新我想我的EndRefresh可能也有问题,当它刷新时,当你再次拉动刷新时,它也不会停止。应用程序因NSexception错误而崩溃。我怎样才能结束刷新,让页面刷新,并避免再次下拉页面时崩溃? 以下是我的代码:Swift 刷新程序未结束,再次下拉时出现错误,swift,parse-platform,refresh,pull-to-refresh,Swift,Parse Platform,Refresh,Pull To Refresh,我正在使用Swift,我正在尝试为我的表格添加一个pull to refresh功能,但它不会停止刷新我想我的EndRefresh可能也有问题,当它刷新时,当你再次拉动刷新时,它也不会停止。应用程序因NSexception错误而崩溃。我怎样才能结束刷新,让页面刷新,并避免再次下拉页面时崩溃? 以下是我的代码: class HomePage: UITableViewController { var images = [UIImage]() var titles = [Strin
class HomePage: UITableViewController {
var images = [UIImage]()
var titles = [String]()
var imageFile = [PFFile]()
var votingObjects: [PFObject] = []
var objectIds = [""]
var refresher: UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
refresher = UIRefreshControl()
refresher.attributedTitle = NSAttributedString(string: "Pull to refresh")
refresher.addTarget(self, action: "refresh", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refresher)
func refresh() {
println(PFUser.currentUser())
println(PFUser.currentUser())
var query = PFQuery(className:"Post")
query.orderByDescending("createdAt")
query.limit = 15
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
println("Successfully retrieved \(objects!.count) scores.")
println(objects!)
for objectRow in objects! {
let object = objectRow as! PFObject
if let objectIds = object["objectId"] as? String {
self.objectIds.append(objectIds)
}
if let title = object["Title"] as? String {
self.titles.append(title)
}
if let imgFile = object["imageFile"] as? PFFile {
self.imageFile.append(imgFile)
}
self.votingObjects.append(object)
self.refresher.endRefreshing()
}
dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData() // Updating the tableView on the main thread - important. Do some research on Grand Central Dispatch :)
})
} else {
println(error)
// Error
}
}
}
refresh()
}
在这里,您将刷新器设置为在函数完成时调用函数refresh:
refresher.addTarget(self, action: "refresh", forControlEvents: UIControlEvents.ValueChanged)
因此,我们需要实现这一功能:
func refresh(){
println("Refresh")
refresher.endRefreshing()
}
现在将调用此函数,刷新程序将停止它仍在执行相同的操作。我是否应该尝试将所有代码表单viewDidLoad取出?抱歉,我刚刚看到问题,我更新了答案,这应该会解决它!它似乎仍然在做同样的事情