2016-01-08 4 views
0

В моей базе данных синтаксиса у меня есть некоторые данные, созданные в приложении, но когда я перехожу к TableViewController, показывающим сообщения, он не обновлялся по какой-то причине. Вот мой код (я могу предоставить более подробную информацию о базе данных синтаксического анализа, если это необходимо, чтобы помочь решить эту проблему):Не обновлять сообщения Parse Swift

import UIKit 
import Parse 
import ParseUI 

class PostsTableViewController: PFQueryTableViewController { 

    override func queryForTable() -> PFQuery { 

     let query = PFQuery(className: "Posts") 
     query.cachePolicy = .CacheElseNetwork 
     query.orderByDescending("createdAt") 
     return query 
    } 

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? { 

     let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! PostsTableViewCell 

     let posterUsernameText = object?.objectForKey("createdBy") as? String 
     cell.posterUsername.setTitle("\(posterUsernameText)", forState: .Normal) 

     cell.msgTextView.text = object?.objectForKey("text") as? String 

     let imageFile = object?.objectForKey("image") as? PFFile 
     cell.cellImageView.file = imageFile 
     cell.cellImageView?.loadInBackground() 

     return cell 

    } 

    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 

     if indexPath.row + 1 > self.objects?.count { 

      return 44 

     } 

     let height = super.tableView(tableView, heightForRowAtIndexPath: indexPath) 
     return height 
    } 

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

     if indexPath.row + 1 > self.objects?.count { 

      self.loadNextPage() 
      tableView.deselectRowAtIndexPath(indexPath, animated: true) 

     } else { 

      self.performSegueWithIdentifier("showDetail", sender: self) 

     } 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

     if segue.identifier == "showDetail" { 



     } 

    } 

} 

EDIT: Вот фотография моей базы данных, и фотография моего экрана: enter image description here

enter image description here

enter image description here

+0

[self.tableView reloadData]; ? – Pipiks

+0

Куда бы я его поместил, поэтому я работаю над поиском, чтобы обновить? И я предполагаю viewdidload для запуска? Также быстро, пожалуйста, –

+0

Да, извините. Попробуйте добавить кнопку для обновления данных. self.tableView.reloadData() – Pipiks

ответ

0

Я считаю, что вам нужно перезагрузить данные для PFQueryTableView & вы делаете это с loadObjects метод. Как упоминалось в документации Parse, он очищает таблицу и загружает первую страницу объектов. (Вы можете использовать loadNextPage для загрузки следующей страницы объектов в представление таблицы) Вот link в документации PFQueryTableViewController

+0

Действительно ли это быстро? –

+0

Нет, к сожалению, Parse несколько медленнее при обновлении для Swift, а часть документации - только Obj-C. Вам нужно будет вызвать self.loadObjects() [self refer to PFQTV]. Я использовал Parse + Swift пару раз в недавнем прошлом с представлениями таблицы (не использовал PFQTV) и сохранил бы его в массиве, и после того, как я просто перезагрузил таблицу (используя tableName.reloadData()) –

+0

Для справки: https://github.com/Nexmo/ToDo-iOS/blob/2FA/NexmoToDoList/TableViewController.swift –