2015-11-04 78 views
0

我正在练习解析现在,我现在如何检索数据,但问题是 当我尝试在解析中保存对象时,我的第一个打印(postsArray)不显示任何内容。这是我的代码。之后我追加数据parse.com追加检索数据

import UIKit 
import Parse 

class TableViewController: UITableViewController { 

var postsArray = [PFObject]() 
override func viewDidLoad() { 
    super.viewDidLoad() 




    fetchData() 
    print(postsArray) 
    tableView.reloadData() 


} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

// MARK: - Table view data source 

override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    // #warning Incomplete implementation, return the number of sections 
    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of rows 
    return postsArray.count 
} 


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("practiceCell", forIndexPath: indexPath) 

    // Configure the cell... 

    cell.textLabel!.text = postsArray[indexPath.row].objectForKey("text") as? String 
    return cell 



} 

func fetchData() { 



     //empty postArray 
     postsArray = [] 

     //bring data from parse 
     let query = PFQuery(className: "Practice") 

     query.orderByDescending("createdAt") 
     query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error) -> Void in 
      if error == nil && objects != nil{ 
       for object in objects! { 

        self.postsArray.append(object) 
        print(self.postsArray) 
       } 

      } 
     } 
    } 
} 

打印方法,显示正确的数据,但在viewDidLoad中第一次打印()方法告诉我什么。所以我的tableView也不显示任何东西。

我读解析文档和搜索其他问题,这似乎没有错,它不工作。

你能给我一个建议吗?

回答

0

查询完成后,您需要self.tableView.reloadData()这将导致tableView再次委托它委托它应该有多少行,在返回数据后这将是准确的。或者,您可以使用一个PFQueryTableViewController,它将自行处理它的对象,并使您更容易管理。

+0

你是对的,它的工作原理。 –

+0

很高兴能帮到你! – pbush25