设置LET关闭不返回?斯威夫特4

时间:2018-01-12 17:04:07

标签: arrays swift firebase

嘿伙计们,我有一组自定义对象的设置:

 let posts : [Post] = {
    // fill posts array with posts from all buddys "privataPosts only"
    var ret = [Post]()
    staticValuesForData.instance.dataBaseUserref.child((Auth.auth().currentUser?.uid)!).child("contacts").observe( .value , with: { (snapshot) in

        let dict = snapshot.children.allObjects as! [DataSnapshot]
        for d in dict{
            if let contactUid = d.childSnapshot(forPath: "uid").value as? String{


            staticValuesForData.instance.dataBaseUserref.child(contactUid).child("privatePosts").observe( .value , with: { (snapshot) in

                let posts = snapshot.children.allObjects as! [DataSnapshot]
                print("postval" , posts)

                    for post in posts{

                        if let dict = post.value as? [String : AnyObject]{
                            let fullname = dict["fullname"] as! String
                            let picUrl = dict["picUrl"] as! String
                            let postContent = dict["postContent"] as! String
                            let time = dict["time"] as! Int
                            let uid = dict["uid"] as! String
                            let username = dict["username"] as! String

                            print("first name of person who did the post" , fullname)

                            let reposts = dict["reposts"] as! [String]

                            let downs = dict["downs"] as! [String]
                            // possible issue
                            var comments = [Comment]()

                            let commentArr = snapshot.childSnapshot(forPath: "comments").children.allObjects as! [DataSnapshot]

                            for c in commentArr{
                                if let dict = c.value as? [String : AnyObject]{

                                    let cuid = dict["uid"] as! String
                                    let ccommentText = dict["commentText"] as! String
                                    let cpicUrl = dict["picUrl"] as! String
                                    let cusername = dict["username"] as! String
                                    let ctime = dict["time"] as! Int

                                    let com = Comment(uid: cuid, commentText: ccommentText, time: ctime, picUrl: cpicUrl, username: cusername)

                                    comments.append(com)

                                }

                            }

                            print("HERE : post content\(postContent) username : \(username) commentArr \(comments)")

                            let postToAdd = Post(postContent: postContent, picUrl: picUrl, userName: username, fullName: fullname, postID: uid, postTime: time, downs: downs, reposts: reposts, comments: comments)

                           print("LOOK AT MEE   \(postToAdd.userName) is the username of the post object \(postToAdd.postContent) is the contetn")

                            ret.append(postToAdd)
                            print("RET" , ret)
                        }
                    }
                })

            }
        }

    })

    return ret
}()

并在打印语句“RET”处,我看到了这个

RET [Free.Post]

RET [Free.Post,Free.Post]

RET [Free.Post,Free.Post,Free.Post]

在控制台中,所以ik“ret”数组中填充了适当的对象,但是当我返回并执行类似

的操作时
  override func numberOfItems(_ section: Int) -> Int {
    print("COUNT " , posts.count)
    return posts.count

}

“COUNT”,posts.count给我0 ......发生了什么事?为什么我的帖子数组没有被填充?

0 个答案:

没有答案