Signaling Changes for User-Driven Actions

Panther·2021년 8월 11일
0

https://developer.apple.com/documentation/fileprovider/nsfileproviderextension/providing_support_for_user-driven_actions/signaling_changes_for_user-driven_actions

"Signal the system about any changes created by an action."

액션에 의해 생성된 모든 변경사항에 대해 시스템에게 신호를 보냅니다.

Overview

모든 변경사항을 시스템이 알도록 함으로써 필요한 경우 문서 브라우저의 인터페이스를 업데이트할 수 있도록 해줘야 합니다. 몇 가지 액션의 경우 브라우저는 액션이 진행되는 동안 일시적인 아이템을 표시합니다. 신호는 브라우저에게 액션이 완료되었다고 알려주고, 시스템이 브라우저의 인터페이스를 비울 수 있도록 합니다. 신호는 현재 디스플레이에 있는 모든 아이템에 대한 업데이트된 정보를 제공하기도 합니다.

아이템 자체, 아이템의 부모(액션 움직임을 위한 새롭게 지정된 부모 및 기존 부모 모두), 작업하고 있는 집합에게 신호를 보낼 필요가 있을 수 있습니다. 모든 액션에 대해 아래 단계를 수행하시기 바랍니다.

  1. 아이템의 부모를 확인합니다. 만약 부모에 대한 활성화된 열거자가 있는 경우 부모에게 신호를 보냅니다.
  2. 아이템 자체를 확인합니다. 만약 아이템에 대한 활성화된 열거자가 있는 경우 아이템에 신호를 보냅니다.
  3. 아이템이 작업하고 있는 집합에 있는지 확인하고, 작업하고 있는 집합에 신호를 보냅니다.
  4. 액션이 작업하고 있는 집합에 아이템을 추가하는 경우(혹은 제거하는 경우) 작업하고 있는 집합에 신호를 보냅니다.
  5. 만약 아이템의 부모가 작업하고 있는 집합에 있고, 액션이 부모로부터 아이템을 추가하거나 제거하려는 경우 작업하고 있는 집합에 신호를 보냅니다.

NSFileProviderManager 클래스의 signalEnumerator(for:completionHandler:) 메소드 호출과 적합한 아이덴티파이어에 전달함으로써 변경사항에 대한 신호를 보내시기 바랍니다. 시스템이 변경사항을 알게된 후 필요에 따라 시스템은 영향을 받는 모든 활성화된 열거형 및 브라우저의 UI 열거형에서 enumerateChanges(for:from:)을 호출합니다.

활성화된 열거자가 없더라도 아이템에 대한 변경사항 신호를 보낼 수 있습니다. 이 경우 시스템은 경고 로그를 남기고, 그렇지 않은 경우 신호를 무시합니다.

더 많은 정보는 Tracking Your File Provider's Changes를 살펴보시기 바랍니다.

Tracking Your File Provider's Changes
https://developer.apple.com/documentation/fileprovider/content_and_change_tracking/tracking_your_file_provider_s_changes
https://velog.io/@panther222128/Tracking-Your-File-Providers-Changes

0개의 댓글