ответ
Я искал, как сделать это в течение нескольких дней, и только был в состоянии найти людей, которые хранящиеся UILocalNotificaations в NSUserDefaults. Сохранение их в NSUserDefaults показалось мне неправильным, потому что оно должно использоваться для небольших флагов. Я только сейчас понял, как хранить уведомления в CoreData. Это Использование Xcode 7.3.1 и Swift 2,2
Во-первых вам нужно создать новый объект в вашем CoreDataModel , а затем добавить один атрибут к нему. атрибут должен быть типа Двоичные данные Я назвал свою таблицу/объект «ManagedFiredNotifications» и мой атрибут «уведомление». это должно выглядеть так:
Изображение, связанное в вопросе выше.
Далее вам нужно добавить расширение к UILocalNotification он должен идти, как это:
extension UILocalNotification {
func save() -> Bool {
let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate
let firedNotificationEntity = NSEntityDescription.insertNewObjectForEntityForName("ManagedFiredNotifications", inManagedObjectContext: appDelegate!.managedObjectContext)
guard appDelegate != nil else {
return false
}
let data = NSKeyedArchiver.archivedDataWithRootObject(self)
firedNotificationEntity.setValue(data, forKey: "notification")
do {
try appDelegate!.managedObjectContext.save()
return true
} catch {
return false
}
}
}
Теперь для сохранения уведомления все, что вам нужно сделать, это позвонить
UILocalNotification.save()
On The уведомление, которое вы хотели бы сохранить. мои уведомления были названы «уведомление», так что я бы назвал notification.save()
Для получения уведомления вам нужен способ, как этот
func getLocalFiredNotifications() -> [UILocalNotification]? {
let managedObjectContext = (UIApplication.sharedApplication().delegate as? AppDelegate)!.managedObjectContext
let firedNotificationFetchRequest = NSFetchRequest(entityName: "ManagedFiredNotifications")
firedNotificationFetchRequest.includesPendingChanges = false
do {
let fetchedFiredNotifications = try managedObjectContext.executeFetchRequest(firedNotificationFetchRequest)
guard fetchedFiredNotifications.count > 0 else {
return nil
}
var firedNotificationsToReturn = [UILocalNotification]()
for managedFiredNotification in fetchedFiredNotifications {
let notificationData = managedFiredNotification.valueForKey("notification") as! NSData
let notificationToAdd = NSKeyedUnarchiver.unarchiveObjectWithData(notificationData) as! UILocalNotification
firedNotificationsToReturn.append(notificationToAdd)
}
return firedNotificationsToReturn
} catch {
return nil
}
}
Обратите внимание, что это возвращает массив UILocalNotifications.
При получении их, если вы планируете на удалении нескольких из них, а затем хранить список снова, вы должны удалить их, когда вы им что-то вроде это работает:
func loadFiredNotifications() {
let notifications = StudyHelper().getLocalFiredNotifications()
if notifications != nil {
firedNotifications = notifications!
} else {
// throw an error or log it
}
classThatRemoveMethodIsIn().removeFiredLocalNotifications()
}
Я надеюсь, что это поможет кому-то, кто имел те же проблемы, которые я пытался реализовать.
- 1. Как сохранить массив в CoreData?
- 2. Как сохранить данные в coreData
- 3. Как сохранить NSAttributedString в CoreData
- 4. Сохранить CMTime в CoreData?
- 5. Сохранить объект в CoreData
- 6. Как установить несколько UILocalNotifications
- 7. CoreData - Сохранить/Загрузить Справка!
- 8. Нагромождение UILocalNotifications
- 9. Сохранить EVObjects с CoreData
- 10. Сохранить объекты CoreData в NSUserDefaults
- 11. сохранить текст на coreData
- 12. CoreData Сохранить навсегда?
- 13. RestKit сохранить объекты CoreData
- 14. Сохранить RecurrenceRule события в CoreData
- 15. Как сохранить текущую дату в CoreData?
- 16. Как сохранить динамические данные в CoreData?
- 17. Как сохранить данные в модели coredata
- 18. Как сохранить данные чата пользователя в coredata
- 19. Как сохранить объект ABRecordRef в CoreData
- 20. Как сохранить несколько записей в CoreData?
- 21. Как сохранить NSMutableArray из NSValue в CoreData?
- 22. Как отслеживать UILocalNotifications запланированного в настоящее время
- 23. Сохранить и загрузить данные - CoreData
- 24. Включить/выключить все UILocalNotifications
- 25. Как сохранить несколько отношений с CoreData сразу?
- 26. CoreData Swift: как сохранить и загрузить данные?
- 27. CLBeaconRegion notifyEntryStateOnDisplay и UILocalNotifications
- 28. Создать несколько UILocalNotifications
- 29. Сохранить CoreData для iCloud (Swift)
- 30. обнаружить неподтвержденный UILocalNotifications
Пожалуйста, ответьте в ответ на свой вопрос и примите его. Хороший старт в StackOverflow;) – Kametrixom
О да, я забыл об этом. Благодарю. –
Благодарим за добавление изображения @Kametrixom –