Как удалить пожертвованный ярлык в Swift Siri - PullRequest
0 голосов
/ 31 января 2019

У меня есть простое приложение со списком стилей 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 в моей базе данных.

Помощь будет принята с благодарностью.

...