【问题标题】:Observe finishing of json loading观察json加载完成
【发布时间】:2016-09-02 20:56:32
【问题描述】:

我有一个小问题。我想要这样的功能:

func performGetRequest(targetURL: NSURL!, completion: (data: NSData?, HTTPStatusCode: Int, error: NSError?) -> Void) {
    let request = NSMutableURLRequest(URL: targetURL)
    request.HTTPMethod = "GET"

    let sessionConfiguration = NSURLSessionConfiguration.defaultSessionConfiguration()

    let session = NSURLSession(configuration: sessionConfiguration)

    let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            completion(data: data, HTTPStatusCode: (response as! NSHTTPURLResponse).statusCode, error: error)
        })
    })

    task.resume()
}

我在appcoda.com 上找到了,但可以选择在数据加载完成解析时执行某些操作。比如:

UIView.animateWithDuration(3.0, delay: 0, options: .CurveEaseIn, animations: { () -> Void in

        }, completion: {finished in
            self.functionXY()
    })

我的完整计划是从两个特定页面加载 json 数据,第二个 json 链接是从第一个 json 中的数据生成的。所以我在第一个完成后开始一个http请求。 当第二个完成后,我想调用一个函数,将我的视图从 loadscreen 更改为 mainView。

【问题讨论】:

    标签: ios json swift properties httprequest


    【解决方案1】:

    您可以在performGetRequest:的完成处理程序中简单地调用动画代码

    func aFunction() {
        performGetRequest(yourURL) { (data, HTTPStatusCode, error) in
            if error == nil {
                self.animate()
            }
        }
    }
    
    func animate() {
        UIView.animateWithDuration(3.0, delay: 0, options: .CurveEaseIn, animations: { () -> Void in
    
        }, completion: {finished in
            self.functionXY()
    })
    

    【讨论】:

      【解决方案2】:

      您可以依赖 Alamofire 或其他 http/post-request 开源库,而不是简单的请求。
      否则,您可以将 NSURLSessionDataTask / NSURLSessionDownloadTask 与相应的完成处理程序一起使用

      希望这可能会有所帮助

      【讨论】:

        猜你喜欢
        • 2018-01-03
        • 1970-01-01
        • 2019-03-25
        • 1970-01-01
        • 1970-01-01
        • 2021-10-19
        • 2019-08-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多