简体   繁体   English

Swift Array未附加到

[英]Swift Array not being appended to

I'm trying to get a tableview to display parsed data, but the array that is supposed to be populating my tableview isn't being appended. 我正在尝试获取一个表视图以显示已解析的数据,但是没有追加应该填充我的表视图的数组。 Could someone take a quick look and let me know what I'm doing wrong? 有人可以快速浏览一下,让我知道我在做什么错吗?

import UIKit
import SwiftKeychainWrapper
import Firebase

class FeedVC: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet var tableView: UITableView!

var posts = [Post]()

override func viewDidLoad()
{
    super.viewDidLoad()

    tableView.delegate = self
    tableView.dataSource = self


    DataService.ds.REF_POSTS.observeEventType(.Value, withBlock: { snapshot in
        if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot]
        {
            for snap in snapshot
            {

                if let postDict = snap.value as? Dictionary<String, AnyObject>
                {
                    let key = snap.key
                    let post = Post(postID: key, postData: postDict)
                    self.posts.append(post)

                }
            }
        }
    })

    tableView.reloadData()


}

override func viewDidAppear(animated: Bool) {

}

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

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return posts.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let post = posts[indexPath.row]
    print("\(post.caption)")


    return tableView.dequeueReusableCellWithIdentifier("PostCell") as! PostCell
}






@IBAction func signOutBtnTapped(sender: UIButton) {

    KeychainWrapper.defaultKeychainWrapper().removeObjectForKey(KEY_UID)
    try! FIRAuth.auth()?.signOut()
    performSegueWithIdentifier("toSignInVC", sender: nil)
}


}

Thanks guys. 多谢你们。

Your data retrieval appears to be an async operation, which probably does not finish before the table is rendered. 您的数据检索似乎是一个异步操作,该操作可能在呈现表之前没有完成。 Try reloading the table data on a new line after self.posts.append(post) or at the end of the completion block. 尝试在self.posts.append(post)或在完成代码块的末尾在新行上重新加载表数据。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM