SwiftのUICollectionViewを実装した際に、CompositionalLayoutを使用した場合のSectionの有無を取得する方法です。
let index: Int? = self.dataSource.snapshot().indexOfSection(Section.Section1)
SnapshotからSectionの有無を取得しようとした時に、上記の記述を行う事でインデックスを取得する事ができます。
SnapshotからSection内のItem(項目)を取得するなら下記の方法で取得できます。
let items: [Item] = self.dataSource.snapshot().itemIdentifiers(inSection: .Section1)
2つの方法の違いは、1つ目の方は、Sectionが無い場合でも機能します。
しかし、2つ目の方法はSectionが無い場合、エラーが発生してしまいます。
Sectionが無い場合とは、appendSectionsでSectionの登録をしていない時。
この場合に、2つ目の方法でItemの有無や個数をカウントしようとすると、エラーになります。
SnapShot内の項目を確認する際に、Sectionが無い状況が発生する場合があるなら1つ目のソースなどでSectionの有無を確認してからitemIdentifiersなどを呼び出す必要があります。
コメント