Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.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
Ios 使用Swift 3拉动刷新和Alamofire_Ios_Json_Swift_Swift3_Alamofire - Fatal编程技术网

Ios 使用Swift 3拉动刷新和Alamofire

Ios 使用Swift 3拉动刷新和Alamofire,ios,json,swift,swift3,alamofire,Ios,Json,Swift,Swift3,Alamofire,我使用Alamofire从web URL(JSON)获取数据。我正在尝试在我的项目中实现pull toRefreshControl。我已经做了,但不知道它是否正确,或者刷新时数据是否正在更新。我的代码是: var refresh = UIRefreshControl() refresh.addTarget(self, action: #selector(self.refreshData), for: UIControlEvents.valueChanged) func refreshData

我使用Alamofire从web URL(JSON)获取数据。我正在尝试在我的项目中实现pull to
RefreshControl
。我已经做了,但不知道它是否正确,或者刷新时数据是否正在更新。我的代码是:

var refresh = UIRefreshControl()

refresh.addTarget(self, action: #selector(self.refreshData), for: UIControlEvents.valueChanged)

func refreshData() {

    Alamofire.request("https://www.example.com/api").responseJSON(completionHandler: {
        response in
        self.parseData(JSONData: response.data!)
        self.tableView.separatorStyle = UITableViewCellSeparatorStyle.singleLine

        self.tableView.reloadData()
        self.refresh.endRefreshing()


    })        
}

这是否正确?

您的操作正确,但需要在主线程上重新加载
tableView
并停止
UIRefreshControl

DispatchQueue.main.async {
    self.tableView.reloadData()
    self.refresh.endRefreshing()             
}

注意:您需要使用
viewDidLoad
或Interface builder将其设置一次,而不是始终按API请求设置
separatorStyle

操作正确,但需要在主线程上重新加载
tableView
并停止
UIRefreshControl

DispatchQueue.main.async {
    self.tableView.reloadData()
    self.refresh.endRefreshing()             
}

注意:您需要使用
viewDidLoad
或Interface builder设置一次,而不是设置
separatorStyle
始终按API请求。因此,我将把这个Nirav放在哪里呢?与当前重新加载tableView的位置相同,只需在主线程中添加这两行即可。Nirav,以上所有代码(包括我的代码)是否都必须进入
覆盖func viewDidLoad(){super.viewDidLoad())
?在
viewDidLoad
中,您需要只设置这一行
self.tableView.separatorStyle=UITableViewCellSeparatorStyle.singleLine
,那么我应该把这个Nirav放在哪里呢?在当前重新加载tableView的同一个位置,只需在主线程中添加这两行即可。Nirav,包括我在内的所有上述代码都必须这样做吗进入
override func viewDidLoad(){super.viewDidLoad()
?在
viewDidLoad
中,只需设置此行
self.tableView.separatorStyle=UITableViewCellSeparatorStyle.singleLine