在我的应用程序中,用户可以通过Sirikit将任务添加到列表中(示例Siri意向查询:“在MyApp中,为牛仔裤添加100美元的费用列表”)。如果建议的列表在应用程序中不可用,请消除歧义。
歧义选择的结果不会在resolveTargetTaskList中捕获。
intent.targetTaskList?.title是我在第一次尝试中传递的值。结果,它进入无限循环。
func resolveTargetTaskList(for intent: INAddTasksIntent, with completion: @escaping (INTaskListResolutionResult) -> Void) { guard let title = intent.targetTaskList?.title else { completion(.needsValue()) print("no title value") } completeResolveTaskList(listName: intent.targetTaskList!.title, with: completion) } public func completeResolveTaskList(listName: INSpeakableString, with completion: @escaping (INTaskListResolutionResult) -> Void) { print("completeResolveTaskList") let allLists = getAllLists() for index in 0...(allLists.count - 1) { if allLists[index].spokenPhrase.lowercased() == listName.spokenPhrase.lowercased() { completion(.success(with: taskLists[index])) } } switch allLists.count { case 0: completion(.unsupported()) default: completion(.disambiguation(with: taskLists)) } }
屏幕截图以供参考:
请帮我。