0
申し訳ありませんが、この問題は以前に尋ねられましたが解決策を見つけることができませんでしたので、助けてくれる他の人がいるかどうか確認しました。2つのクラス配列をマージし、コレクションビューの日付に応じて追加します
2つのクラスの配列をコレクションビューでマージするにはどうすればよいですか?私は2つの配列を表示することができましたが、どうすればそれらを相互に結びつけ、postDateに従って追加することができますか?
以下、私はphotoPosts配列とvideoPosts配列を持っていますが、私は現在以下のメソッドを使用しています。しかし、これは1つの配列を別のアレイにしか表示しません。事前
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
}
感謝を。 Emptyコレクションリテラルには、 '' var combinedArray = [] '行の明示的な型が必要です。 –
' 'NSArray'として' 'var combinedArray = [] 'を試しました。しかし、私はまだエラーが表示されます –
エラー:空のコレクションリテラルには明示的な型が必要です –