#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! Вы очень помогли!