按钮会在按下后显示旧的JSON值,即使它每分钟更改一次API

时间:2018-10-05 16:33:14

标签: ios swift

我有一些奇怪的麻烦。 有我的按钮并连接到API:

 Alamofire.request("http://app", method: .get, headers: headers).responseJSON { response in
        print("response",response)
        switch response.result {
        case .success(let value):
            let json = JSON(value)
            let success = json["success"].boolValue
            print("successs",success)
            if success == false{
                let error = json["error"].stringValue
                print(error)
            }else{
                for (_,subJson):(String, JSON) in json["data"][0] {
                    let name = subJson["user"]["name"].stringValue
                    self.nameCheck.append(name)

                }
               print("PresentTitle",self.nameCheck[0],"\(Date())")
            }
        case .failure(let error):
            print(error)
        }
    }

按下按钮后,每次都会看到相同的值,但是API中的值每分钟更改一次。但是,如果您退出该ViewController并再次进入它,则会出现一个新值。

我需要怎么做才能在不离开ViewController的情况下显示新值?

2 个答案:

答案 0 :(得分:0)

您可以使计时器每分钟调用一次api,如下所示:

        Timer.scheduledTimer(timeInterval: 60, target: self, selector: #selector(callApi), userInfo: nil, repeats: true)

您应该在viewDidLoad()方法中设置计时器。 然后创建函数:

@objc func callApi() {
    // here you write your code 
}

答案 1 :(得分:-1)

看起来您必须做一个实时应用程序来处理这种情况。一个很好的选择是基于WebSockets的SignalR。他们有一个不错的.NET库和一些快捷的Pod,例如:

https://github.com/adamhartford/SwiftR