2017-03-27 4 views
0
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) 

私のアプリでUIApplicationShortcutIcon機能を実行しています。 shortcutItemを処理した後にcompletionHandlerを返さなければならないことをはっきりと理解しています。 しかしtrueまたはfalseのcompletionHandlerの呼び出しは、アプリケーションに反映されますか?performActionForのcompletionHandlerとは何ですか?

答えて

0

補完ハンドラは、関数がイベントを処理したかどうかを通知します。

UIApplicationShortcutItemについてお話しした場合、ユーザーはホーム画面のアプリアイコンを押して、クイックアクションのタイトルを選択してクイックアクションを呼び出します。 app delegateは、クイックアクションを受信して​​処理します。つまり、ユーザーが3Dを呼び出すと、完了ハンドラはtrueになり、3D touchのユーザーのためにやりたいことができます。

ユーザーが3Dに触れない場合は、常にfalseになります。それはどのようにBOOL値によって処理されます。

さらにお手伝いが必要な場合は、お尋ねください。

+0

あなたは次のように書いています。「3Dに触れなければ、それは常に偽です。 ユーザが3Dに触れていない場合でも、funcアプリケーション(UIApplication、performActionFor shortcutItem:UIApplicationShortcutItem、completionHandler:@エスケープ(Bool) - > Void)に移動しません。 ' 完了ハンドラはsuccessパラメータでtrueまたはfalseを指定して呼び出す必要があるため、私のために何かを返します。 –

+0

@ SlaveSemeniukあなたのアプリがクイックアクションを使って実際に起動されたことがわかった場合は、起動メソッド内で要求されたクイックアクションを実行し、そのメソッドからfalseを返します。 falseの値を返すと、システムはアプリケーションを呼び出さない:ショートカット項目のためのアクションを実行:完了ハンドラ:メソッド –

+0

私はそれを本当に理解している。私の質問が何であるかを見てください。 UIApplicationShortcutItemを使ってユーザーを開いているアプリ。システムは 'application:Shortcut Itemのためのアクションを実行する:completion Ha ndler:'を呼び出します。 何の差: 'FUNCアプリケーション(アプリケーション:のUIApplication、performActionForShortcutItem shortcutItem:UIApplicationShortcutItem、completionHandler:ブール - >ボイド){completionHandler(真)}' と 'FUNCアプリケーション(アプリケーション:のUIApplication、performActionForShortcutItem shortcutItem:UIApplicationShortcutItem 、completionHandler:Bool - > Void){completionHandler(false)} ' –

関連する問題