我知道在SO上也有类似的问题,但是我仍然无法解决问题并解决问题。
问题很简单:我想以相反的顺序从Firebase数据库中获取项目。我使用.reverse()这样做。它适用于该单词的某些含义,项目实际上已重新排列,但第二个由于某种原因始终排在最后。
有人可以在这种情况下向我解释进行换向的正确方法吗?我希望在不创建新数组的情况下进行反转。可能吗?这是我的示例代码。
任何帮助将不胜感激,谢谢!
Database.database().reference().child("posts").observe(.childAdded) { (snapshot) in let postId = snapshot.key guard let dictionary = snapshot.value as? Dictionary<String, AnyObject> else { return } let post = Post(postid: postId, dictionary: dictionary) postsArray.append(post) postsArray.reverse() self.finishedFetching = true self.collectionView.reloadData() }
用 childAdded
postsArray.append(post) postsArray.reverse()
完成每次呼叫追加到数组和挫折的,这将导致在一个阵列,这不是颠倒所有的阵列一次的结果,所以你可能会发现.value
不.childAdded
这是因为您每次添加后都需要反转
例
附加A-> [A]
反向-> [A]
附加B-> [A,B]
反向-> [B,A]
附加C-> [B,A,C]
反向-> [C,A,B]