2016-07-08 42 views
0

我想为我的应用中的用户创建收件箱。然而,我有一个问题重新加载tableView。如果我删除self.tabelView.reloadData()应用程序视图运行正常,但当然不会更新表格单元格。查询确实是因为我可以打印出结果数组。我得到的错误是LLDB错误。它声明“EXC_BreakPoint”,我没有设置任何中断点。这里是我的代码:使用Swift的Firebase用户收件箱

class InboxTableViewController: UITableViewController { 

var pinggedUser: String! 

var toBeUserId: String! 


let dataBase = FIRDatabase.database() 

var SecondResultArray: [FIRDataSnapshot]! = [] 



override func viewDidLoad() { 



     messageReference = rootReference.child("messages") 

    //let UserRef = messageReference.child((FIRAuth.auth()?.currentUser?.displayName)!) 

    messageReference.queryOrderedByChild("senderName") 
     .observeSingleEventOfType(.Value, withBlock:{ snapshot in 
      for child in snapshot.children { 


       self.SecondResultArray.append(child as! FIRDataSnapshot) 
       //print(self.ResultArray) 


      } 

      print(self.SecondResultArray) 

       self.tableView.reloadData() 


     }) 


    super.viewDidLoad() 

    // Uncomment the following line to preserve selection between presentations 
    // self.clearsSelectionOnViewWillAppear = false 

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
    // self.navigationItem.rightBarButtonItem = self.editButtonItem() 
} 



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 SecondResultArray.count 
} 


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

    // Configure the cell... 

    let inBox: FIRDataSnapshot! = self.SecondResultArray[indexPath.row] 

    let book = inBox.value as! Dictionary<String, String> 



    let receiver = book["receiver"] as String! 

    let senderId = book["senderId"] as String! 

    let messageText = book["text"] as String! 


    let senderName = book["senderName"] as String! 


    cell.textLabel?.numberOfLines = 0 
    cell.textLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping 



    cell.textLabel?.text = "Your Messages With:" + "" + senderName 


    return cell 
} 


} 
+0

什么是你确切的问题EXC_BreakPoint或tablecell不会被更新? – kalpesh

+0

我实际上不知道表格是否会更新,因为那个错误。所以我会说这个错误是我的主要问题。它在viewDidLoad中调用self.tableView.reloadData时发生。当我在其他地方调用它时,没有错误,但是表格不会加载数据。 –

回答

0

可能是你没有注册你的tableview。

self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") 
+0

我该怎么做?在viewDidLoad中? –

+0

是在tableview重载之前。 – kalpesh

+0

同样的错误,并没有工作。我怀疑它与FirebaseQuery内部有什么关系,但如果我在查询之外调用它,它不会重新加载表。 –