Как проверить, существует ли уже ярлык?

#ios #swift

Вопрос:

Я написал этот метод, чтобы проверить, существует ли уже ярлык для данного идентификатора.

 public static func shortcutExists(id: String, completion: @escaping ((Bool) -> Void)) {
        var exists = false
        INVoiceShortcutCenter.shared.getAllVoiceShortcuts { voiceShortcutsFromCenter, error in
            if let voiceShortcutsFromCenter = voiceShortcutsFromCenter {
                for voice in voiceShortcutsFromCenter {
                    if id == voice.shortcut.intent?.identifier {  // What to do here?
                        exists = true
                        break
                    }
                }
            } else {
                ...
            }
            completion(exists)
        }
    }
 

У меня есть уникальный идентификатор для каждой записи о намерении. Но я не знаю, как сохранить этот идентификатор в качестве идентификатора намерения. Идентификатор кажется довольно доступным только для чтения и, похоже, генерируется автоматически.

Как я могу этого добиться, пожалуйста?

Ответ №1:

Я добиваюсь этого, добавляя уникальное свойство в каждое пользовательское намерение. Затем проверьте свойство намерения после getAllVoiceShortcuts{} .

 func checkExist(existShortcuts: [INVoiceShortcut]) -> Bool {
    existShortcuts.first(where: {
        let intent = $0.shortcut.intent
        return intent?.customPropertyId == self.customId
    }) != nil
}