"Create an enumerator to track changes to your file provider's content."
파일 제공자의 컨텐트에 대한 변경사항을 추적하기 위해 열거자를 생성합니다.
열거자가 활성화되어 있는 동안 열거자는 컨텐츠에 대한 모든 변경사항을 추적합니다. 시스템은 해당 아이템에 대한 활성화된 열거자를 갖고 있는 동안에만 문서 혹은 폴더 변경사항을 추적합니다(예를 들어 문서가 열려 있는 동안 혹은 폴더가 브라우징되는 동안).
Note
시스템은 작업하고 있는 집합의 변경사항을 항상 추적합니다. 만약 시스템이 작업하고 있는 집합에 대한 활성화된 열거자를 갖지 않는 경우 새로운 하나를 생성합니다.
파일 제공자 앱 혹은 확장이 가지고 있는 컨텐트에 대한 변경사항을 확인하면 아래 내용을 수행합니다.
NSFileProviderManager
클래스의 signalEnumerator(for:completionHandler:)
메소드를 호출합니다. 아이템의 아이덴티파이어를 containerItemIdentifier
속성으로써 전달합니다.signalEnumerator(for:completionHandler:)
를 두 번 호출합니다. workingSet
상수를 containerItemIdentifier
속성으로써 전달합니다. 이는 시스템에게 작업하고 있는 집합을 업데이트하도록 알려줍니다.시스템이 변경사항에 대한 알림을 받은 후 시스템은 필요한 경우 영향을 받는 모든 열거형에 enumerateChanges(for:from:)
을 호출하고, 브라우저의 UI를 업데이트합니다. 호출되는 경우 열거형은 백그라운드에서 아이템(아마도 원격서버로부터)에 대한 정보를 수집하고, 특정 옵저버(NSFileProviderChangeObserver
프로토콜을 채택한 객체)에 결과를 반환합니다.
문서를 열기 위해 변경사항을 추적하고 알립니다.
https://developer.apple.com/documentation/fileprovider/content_and_change_tracking/tracking_your_file_provider_s_changes/tracking_changes_to_documents
https://velog.io/@panther222128/Tracking-Changes-to-Documents
서버로부터 변경사항에 대한 신호를 보내기 위해 기기에 푸시 노티피케이션을 보냅니다.
https://developer.apple.com/documentation/fileprovider/content_and_change_tracking/tracking_your_file_provider_s_changes/using_push_notifications_to_signal_changes
https://velog.io/@panther222128/Using-Push-Notifications-to-Signal-Changes