Основные данные и идентификатор уведомления SWIFTUI

#swift #xcode #swiftui

#swift #xcode #swiftui

Вопрос:

Я пытаюсь создать уведомление, используя информацию из созданного пользователем объекта в CoreData. Однако я не могу найти хорошее свойство объекта CoreData для установки в качестве идентификатора для уведомления. Я попытался использовать свойство ‘name’ объекта, но могут быть и другие объекты с тем же вводом, так что это не очень безопасный подход.

Как я могу установить уникальный идентификатор для каждого уведомления, которое я могу прочитать из объекта в CoreData?

Мой код все еще слишком запутан, чтобы публиковать его здесь, но я могу его очистить, если хотите.

Ниже приведен последний подход, который я пробовал, но, похоже, он не работает. Он ведет себя так, как будто ID не является уникальным свойством.

          let content = UNMutableNotificationContent()
        content.title = "Reminder"
        content.body = name
        content.sound = UNNotificationSound.default
        let identifier = "(Reminder.ID.self)"
        let calendar = Calendar.current
        var reminderDate = DateComponents()
        reminderDate = calendar.dateComponents([.year,.month,.day,.hour,.minute], from: remdate)
        let trigger = UNCalendarNotificationTrigger(dateMatching: reminderDate, repeats: true)
        let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
        UNUserNotificationCenter.current().add(request)
 

Комментарии:

1. Не могли бы вы объяснить или привести пример? Я новичок в пользовательском интерфейсе Swift.

2. Прошу прощения, я имел в виду UUID, а не UDID. У вас может быть идентификатор атрибута в основных данных, который сохранит каждого пользователя с уникальным идентификатором, например, PK. Поскольку UUID означает универсальный уникальный идентификатор.

3. Звучит неплохо! Должен ли я добавить еще один атрибут к сущности? Или это уже есть? Кроме того, как я могу передать его как строку для идентификатора уведомления?

4. Вы можете сохранить UUID непосредственно в виде строки в модели данных. И добавьте значения, вызвав UUID().UUIDString . Если у вас уже есть атрибут ID, вы можете изменить его, если это не является большим изменением.

5. Спасибо за вашу помощь и извините за всю вызванную путаницу! Я смог установить UUID объекта на локальный идентификатор уведомления! Спасибо, @TusharSharma! Вы очень помогли!