2016-04-27 3 views
-4

У меня есть небольшой проект с iOS и Webservice, я попытался загрузить данные из webservice при открытии этого приложения. Поэтому, когда данные загружаются, UIthread будет «PAUSE» ... Итак, как я могу сделать это в фоновом режиме, например AsyncTask в Android?Do in Background Swift

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() 
    } 
+1

Вы пробовали поисковый запрос 'swift asynchronous'? Что дает https://www.raywenderlich.com/79149/grand-central-dispatch-tutorial-swift-part-1 в качестве первого результата! – luk2302

+0

dispatch_async (dispatch_get_global_queue (Int (QOS_CLASS_USER_INITIATED.value), 0)) {// 1 пусть overlayImage = self.faceOverlayImageFromImage (self.image) dispatch_async (dispatch_get_main_queue()) {// 2 self.fadeInNewImage (overlayImage)// 3 } } Этот метод? где делать в фоновом режиме? –

+2

** Прочтите учебник **, нечего сказать. – luk2302

ответ

0

Лучший способ вы можете сделать, это реализовать свой проект с Alamofire

Alamofire является HTTP сети библиотеки, написанной в Swift. Работа в Alamofire выполняется асинхронно. Это пример:

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

P.S. Посмотрите также этот официальный раздел документа "Response serialization", чтобы понять, какой тип ответа вы можете обрабатывать (строка, JSON, данные, ..)

+0

спасибо за ваш anser, но я не использую json :( –