Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 刷新程序未结束,再次下拉时出现错误_Swift_Parse Platform_Refresh_Pull To Refresh - Fatal编程技术网

Swift 刷新程序未结束,再次下拉时出现错误

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

我正在使用Swift,我正在尝试为我的表格添加一个pull to refresh功能,但它不会停止刷新我想我的EndRefresh可能也有问题,当它刷新时,当你再次拉动刷新时,它也不会停止。应用程序因NSexception错误而崩溃。我怎样才能结束刷新,让页面刷新,并避免再次下拉页面时崩溃? 以下是我的代码:

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取出?抱歉,我刚刚看到问题,我更新了答案,这应该会解决它!它似乎仍然在做同样的事情