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

내 응용 프로그램에서 UIApplicationShortcutIcon 기능을 수행하고 있습니다. shortcutItem을 처리 한 후 completionHandler를 삭제해야한다는 것을 분명히 이해합니다. 그러나 true 또는 false로 completionHandler를 호출하면 앱에 어떻게 반영됩니까?performActionFor에 대한 completionHandler는 shortcutItem이란 무엇입니까?

답변

0

완료 핸들러는 함수가 이벤트를 처리했는지 여부를 사용자에게 알립니다.

UIApplicationShortcutItem에 대해 이야기 한 경우 사용자는 홈 화면에서 앱 아이콘을 누른 다음 빠른 동작 제목을 선택하여 빠른 동작을 호출합니다. app delegate은 빠른 동작을 수신하고 처리합니다. 즉, 사용자가 3D를 호출하면 완성 처리기가 true이 될 것이므로 3D touch에 대한 사용자 작업을 수행 할 수 있습니다.

사용자가 3D를 터치하지 않으면 항상 거짓입니다. 그게 얼마나 BOOL 값으로 처리됩니다.

추가 도움이 필요하면 문의하십시오.

+0

'사용자가 3D를 터치하지 않으면 항상 거짓입니다.' 사용자가 3D를 건드리지 않으면 'func 응용 프로그램 (_ application : UIApplication, performActionFor shortcutItem : UIApplicationShortcutItem, completionHandler : @escaping (Bool) -> Void)'도 실행하지 않습니다. 완료 핸들러는 success 매개 변수를 true 또는 false로 호출해야하기 때문에 나에게 어떤 것을 반환합니다. –

+0

@SlavaSemeniuk 빠른 액션을 사용하여 앱이 실제로 시작된 경우 launch 메소드 내에서 요청 된 빠른 액션을 수행하고 해당 메소드에서 false 값을 반환합니다. false 값을 반환하면 시스템이 응용 프로그램을 호출하지 않습니다. 바로 가기 항목에 대한 작업 수행 : 완료 처리기 : 방법 –

+0

정말 이해합니다. 내 질문은 무엇입니까 : UIApplicationShortcutItem을 사용하여 사용자가 열려있는 앱. 시스템은'application : Shortcut Item For Action : completion Ha ndler :'를 호출한다. 무엇의 차이 : 'FUNC 응용 프로그램 (응용 프로그램 : UIApplication, performActionForShortcutItem shortcutItem : UIApplicationShortcutItem, completionHandler : BOOL -> 무효) {completionHandler (참)}' 및 'FUNC 응용 프로그램 (응용 프로그램 : UIApplication, performActionForShortcutItem shortcutItem : UIApplicationShortcutItem , completionHandler : Bool -> Void) {completionHandler (false)}' –