0
對不起,這個問題以前已經問過,但我還沒有設法找到一個解決方案,所以我轉發它,看看是否有其他人可以幫助我。合併2類數組並在追蹤視圖中追加日期
如何在集合視圖中合併2個類數組?我已經設法顯示2個數組,但我怎樣才能讓它們交織在一起並根據postDate追加?
下面我有一個photoPosts數組和videoPosts數組,我目前使用下面的方法。但是這隻能顯示一個接一個的數組。在此先感謝
var photoPosts = [photoPost]()
var videoPosts = [videoPost]()
func retrieveData(){
let ref = Database.database().reference().child("videoPost").child(uid)
ref.observe(.childAdded, with: { (snapshot) in
let dictionary = videoPost(snapshot: snapshot)
self.videoPosts.append(dictionary)
self.videoPosts.sort(by: { (p1, p2) -> Bool in
return p1.postDate?.compare(p2.postDate!) == .orderedDescending
})
})
let ref = Database.database().reference().child("photoPost").child(uid)
ref.observe(.childAdded, with: { (snapshot) in
let dictionary = photoPost(snapshot: snapshot)
self. photoPosts.append(dictionary)
self.posts.sort(by: { (p1, p2) -> Bool in
return p1.postDate?.compare(p2.postDate!) == .orderedDescending
})
})
self.newsfeedCollectionView?.reloadData()
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return videoPosts.count + photoPosts.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! newsfeedCollectionViewCell
if indexPath.item < photoPosts.count {
cell. photoPost = photoPosts[indexPath.item]
} else {
cell.videoPost = videoPosts[indexPath.item-photoPosts.count]
}
return cell
}
感謝您的答覆。是否還有其他的東西我可以在''[]「'之間使用,因爲我得到一個錯誤:空集合文字需要顯式類型的行'var combinedArray = []' –
我嘗試過'var combinedArray = [] as NSArray'但我仍然得到一個錯誤 –
錯誤:空的集合文字需要明確的類型 –