https://developer.apple.com/documentation/uikit/nsdiffabledatasourcesnapshot
"A representation of the state of the data in a view at a specific point in time."
특정 시점에서 뷰에 있는 데이터 상태의 표현입니다.
struct NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> where SectionIdentifierType : Hashable, ItemIdentifierType : Hashable
디퍼블 데이터 소스는 컬렉션 뷰 및 테이블 뷰에서 데이터를 제공하기 위해 스냅샷을 사용합니다. 스냅샷을 통해 뷰에서 표시하는 데이터의 초기 상태를 설정할 수 있으며, 이후 해당 데이터를 업데이트할 수도 있습니다.
스냅샷에 있는 데이터는 표시하고자 하는 섹션 및 아이템으로 만들어지며, 표시하길 원하는 순서로 나타납니다. 섹션 및 아이템을 추가, 삭제, 이동시켜서 표시하고자 하는 것을 설정할 수 있습니다.
Important
섹션 및 아이템의 각각은Hashable
프로토콜을 따르는 고유한 아이덴티파이어를 가져야 합니다.
스냅샷을 사용해서 뷰에 데이터를 표시하려면 아래처럼 해야 합니다.
아래 방법 중 한 가지로 스냅샷을 생성 및 설정할 수 있습니다.
snapshot()
메소드를 호출해서 현재 스냅샷을 가져온 후 표시하고자 하는 데이터의 새로운 상태를 반영하기 위해 해당 스냅샷을 수정해야 합니다.예를 들어 아래 코드는 비어있는 스냅샷을 생성하고, 세 가지 아이템으로 하나의 섹션을 스냅샷으로 채우고 있습니다. 이후 스냅샷에서 나타나는 이전 상태와 새 상태 사이의 UI 업데이트를 애니메이션 처리하면서 스냅샷을 적용합니다.
// Create a snapshot.
var snapshot = NSDiffableDataSourceSnapshot<Int, UUID>()
// Populate the snapshot.
snapshot.appendSections([0])
snapshot.appendItems([UUID(), UUID(), UUID()])
// Apply the snapshot.
dataSource.apply(snapshot, animatingDifferences: true)
더 많은 정보는 디퍼블 데이터 소스 타입을 보시기 바랍니다.
UICollectionViewDiffableDataSource
UITableViewDiffableDataSource
NSCollectionViewDiffableDataSource
UICollectionViewDiffableDataSource
https://developer.apple.com/documentation/uikit/uicollectionviewdiffabledatasource
https://velog.io/@panther222128/UICollectionViewDiffableDataSource
UITableViewDiffableDataSource
https://developer.apple.com/documentation/uikit/uitableviewdiffabledatasource
https://velog.io/@panther222128/UITableViewDiffableDataSource
NSCollectionViewDiffableDataSource
https://developer.apple.com/documentation/appkit/nscollectionviewdiffabledatasource
https://velog.io/@panther222128/NSCollectionViewDiffableDataSource
NSDiffableDataSourceSnapshotReference
객체를 이 타입으로 연결시킬 수 있습니다.
let snapshot = snapshotReference as NSDiffableDataSourceSnapshot<Int, UUID>
특정 시점에 뷰에서 데이터의 상태를 표시하기 위해 사용하는 Objective-C 객체의 스위프트 표현입니다.
https://developer.apple.com/documentation/uikit/nsdiffabledatasourcesnapshotreference
https://velog.io/@panther222128/NSDiffableDataSourceSnapshotReference
컬렉션 뷰에서 데이터를 관리하고 셀을 제공하기 위해 사용하는 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewdiffabledatasource
https://velog.io/@panther222128/UICollectionViewDiffableDataSource