У меня есть простое приложение со списком стилей To Do, в котором добавленному элементу может быть передано намерение, чтобы пользователь мог найти и пометить элемент как «завершенный», не открывая приложение.
В классе NoteУ меня есть эта функция, чтобы пожертвовать намерение, которое работает как ожидалось
public func donateMarkNoteAsCompleteIntent() {
let intent = MarkNoteAsCompleteIntent()
intent.content = self.content
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/YYYY"
intent.addedDate = dateFormatter.string(from: self.addedDate)
intent.id = self.id
let interaction = INInteraction(intent: intent, response: nil)
interaction.groupIdentifier = self.id
interaction.donate(completion: nil)
}
Моя единственная проблема заключается в том, что когда пользователь использует ярлык и запускает приложение для обновления элемента заметки, я хочу удалить ярлык так,что пользователь не может вызвать его снова.
В моей функции обработки намерений я в конечном итоге вызываю эту функцию
public func removeMarkNoteAsCompleteIntent() {
INInteraction.deleteAll(completion: nil)
let index = CSSearchableIndex()
index.deleteAllSearchableItems(completionHandler: nil)
}
Независимо от того, какую комбинацию вещей я здесь делаю, я не могукажется, чтобы удалить пожертвованный ярлык.Как только пользователь соглашается пометить задачу как завершенную, я хочу, чтобы ярлык больше не был виден при поиске в Spotlight и т. Д. Все остальное в коде обработки намерений работает, оно прекрасно обновляет элемент Note в моей базе данных.
Помощь будет принята с благодарностью.