2016-04-25 4 views
-4

Я написал метод «обновления», который должен показывать новые элементы в представлении таблицы, но, похоже, не перезагружает ячейки должным образом.Swift 2 обновить таблицу посмотреть содержимое

func refresh(sender:AnyObject) { 
    page = 1 
    self.data_request() 
} 


func data_request(){ 
    let user_id = Data[0].valueForKey("user_id") as? String! 

    let url:NSURL = NSURL(string: "http://..../perspective/\(user_id!)/page/"+"\(page)")! 

    let session = NSURLSession.sharedSession() 
    self.page = self.page + 1 


    let request = NSMutableURLRequest(URL: url) 
    request.HTTPMethod = "GET" 
    request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData 


    let task = session.dataTaskWithRequest(request) { 
     (let data, let response, let error) in 

     guard let _:NSData = data, let _:NSURLResponse = response where error == nil else { 
      print("error") 
      return 
     } 

     var json: AnyObject? 

     do { 
      json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) 
     } 
     catch { 
      return 
     } 

     guard let data_array = json as? NSArray else { 
      return 
     } 

     for i in 0..<data_array.count 
     { 
      if let add = data_array[i] as? NSDictionary 
      { 
       self.obj.append(Obj(data:add)) 
      } 
     } 

     dispatch_async(dispatch_get_main_queue(), {() -> Void in 
      self.tableView.reloadData() 
     }) 
    } 
    task.resume() 
} 

Он не обновляет ячейки.

И палочки так, без загрузки данных

enter image description here

+3

Что DoD вы имеете в виду не работает? Если 'refresh()' вызывает? Затем 'data_request()'? – Larme

+0

Почему вы перезагружаете таблицу в dispatch_async? Попробовали ли вы без него? –

+2

@ tmac99 так в чем ваш вопрос? Я думаю, что лучшим вариантом было бы удалить этот вопрос и подумать о том, что вы на самом деле хотите задать. Включите всю информацию, которую вы знаете в вопросе. Взгляните сюда http://stackoverflow.com/help/how-to-ask – Fogmeister

ответ

0

Применить ниже кода для перегрузки табличных, я надеюсь, что это поможет и.

dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), {() -> Void in 

     self.tableView.reloadData()      
}) 

ИЛИ

dispatch_sync(dispatch_get_main_queue(), {() -> Void in 

     self.tableView.reloadData() 
}) 
+0

У меня уже есть в моем data_request()? – tmac99

+0

@ tmac99 Я думаю, что есть асинхронный метод, а не синхронизация. правильно? Но вы пробовали этот метод синхронизации? –

+0

он придерживается «pull to refresh» – tmac99