Providing Support for User-Driven Actions

Panther·2021년 8월 11일
0

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

"Override methods to handle user-initiated actions."

사용자가 초기화한 액션을 처리하는 오버라이드 메소드입니다.

Overview

사용자가 문서 브라우저에서 액션을 수행할 때(예를 들어 아이템의 이동, 이름 변경, 삭제), 시스템은 NSFileProviderExtension에서 상응하는 메소드를 호출합니다.

아래 테이블이 각 액션 타입에 대한 액션 메소드를 보여주고 있습니다.

User ActionAction Method
Creates a new foldercreateDirectory(withName:inParentItemIdentifier:completionHandler:)
Deletes a document or folderdeleteItem(withIdentifier:completionHandler:)
Imports a documentimportDocument(at:toParentItemIdentifier:completionHandler:)
Renames a document or folderrenameItem(withIdentifier:toName:completionHandler:)
Moves a document or folder
reparentItem(withIdentifier:toParentItemWithIdentifier:newName:completionHandler:)
Sets or changes a folder's favorite ranksetFavoriteRank(_:forItemIdentifier:completionHandler:)
Uses a documentsetLastUsedDate(_:forItemIdentifier:completionHandler:)
Tags or untags a document or foldersetTagData(_:forItemIdentifier:completionHandler:)
Moves a document or folder to the trashtrashItem(withIdentifier:completionHandler:)
Removes a document or folder from the trashuntrashItem(withIdentifier:toParentItemIdentifier:completionHandler:)

액션 메소드가 호출되면 구현이 아래처럼 되도록 해줘야 합니다.

  1. 작동하는 집합에 대한 업데이트를 포함해 모든 필수적인 로컬 변경사항을 만들어야 합니다.
  2. 서버에서 백그라운드 업데이트를 스케줄링해야 합니다.
  3. 변경사항 발생 신호를 보내도록 해야 합니다.
  4. 결과에서 컴플리션 핸들러를 호출해야 합니다.

모든 액션 메소드는 오프라인으로 작동하길 기대되며, 즉시 반환해야 합니다. 네트워크 동작 혹은 긴 시간을 소요하는 작업을 수행하기 전에 컴플리션 핸들러를 호출하시기 바랍니다. 이 작업들은 백그라운드로 지연됩니다.

Topics


Signaling Changes

Signaling Changes for User-Driven Actions

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

https://developer.apple.com/documentation/fileprovider/nsfileproviderextension/providing_support_for_user-driven_actions/signaling_changes_for_user-driven_actions
https://velog.io/@panther222128/Signaling-Changes-for-User-Driven-Actions


Handling Errors

Handling Errors with User-Driven Actions

액션 프로세싱 동안 발생하는 모든 에러를 처리합니다.

https://developer.apple.com/documentation/fileprovider/nsfileproviderextension/providing_support_for_user-driven_actions/handling_errors_with_user-driven_actions
https://velog.io/@panther222128/Handling-Errors-with-User-Driven-Actions


0개의 댓글