【问题标题】:Do in Background Swift在后台执行 Swift
【发布时间】:2016-04-27 09:49:43
【问题描述】:

我有一个带有 iOS 和 Webservice 的小项目,我尝试在打开这个应用程序时从 webservice 加载数据。因此,当数据加载时,UIthread 将“暂停”......那么我如何才能像 Android 中的 AsyncTask 一样在后台执行呢?

self.conectDataNew.DemoSVNew("Movie", field: "IDMovie,Image,NameViet,Point", condition: "Year|DESC,Limit|7,IDState|2", request: "") { (stringData) in
        let dataArray = stringData.componentsSeparatedByString("|")
        let decodedData = NSData(base64EncodedString: dataArray[2], options: NSDataBase64DecodingOptions(rawValue: 0))
        let decodedString = NSString(data: decodedData!, encoding: NSUTF8StringEncoding)
        let dataArr = decodedString!.componentsSeparatedByString("<row>")
        for i in 0...dataArr.count-1 {
            let menu = dataArr[i].componentsSeparatedByString("|")
            let url:NSURL = NSURL(string: menu[1])!
            let dt :NSData = NSData(contentsOfURL: url)!
            self.idNew.append(menu[0])
            self.posterNew.append(dt)
            self.namesNew.append(menu[2])
            self.scoreNew.append(menu[3])

        }
        self.clvNew?.reloadData()
    }

【问题讨论】:

  • 你试过谷歌搜索swift asynchronous吗?第一个结果是raywenderlich.com/79149/…
  • dispatch_async(dispatch_get_global_queue(Int(QOS_CLASS_USER_INITIATED.value), 0)) { // 1 let overlayImage = self.faceOverlayImageFromImage(self.image) dispatch_async(dispatch_get_main_queue()) { // 2 self.fadeInNewImage (overlayImage) // 3 } } 是这个方法吗?后台在哪里做?
  • 阅读教程,没什么好说的。

标签: ios swift multithreading


【解决方案1】:

您可以做的最好的方法是使用Alamofire 实现您的项目

Alamofire 是一个用 Swift 编写的 HTTP 网络库。 Alamofire 中的网络是异步完成的。这是一个例子:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
         .responseData { response in
             print(response.request)
             print(response.response)
             print(response.result)
          }

附:另请查看此官方文档部分"Response serialization" 以了解您可以处理的响应类型(字符串、JSON、数据......)

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    相关资源
    最近更新 更多