Core Data 和 Userdefaults 不存储数据
Posted
技术标签:
【中文标题】Core Data 和 Userdefaults 不存储数据【英文标题】:Core Data and Userdefaults not storing data 【发布时间】:2020-01-27 12:34:57 【问题描述】:当我的应用程序关闭时,Core Data 和 UserDefaults 不存储数据。
当我的应用程序关闭时我会收到通知,因此我将其存储在核心数据中并默认执行一些操作。
当应用程序打开时,它会存储所有信息,但只有应用程序关闭它不工作,任何想法都可以这样做。
我将数据存储在以下函数中。
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
let response = notification.request.content.userInfo["aps"] as! NSDictionary
//here i will send response will store to core date
self.defaults.set("1", forKey: "notifyid")
completionHandler([.alert, .badge, .sound])
【问题讨论】:
实际上你误解了这个问题兄弟。当我的应用程序关闭时,我会收到推送通知。我有存储通知数据的功能。现在当我的应用程序关闭时它不会存储。打开应用程序时它工作正常。 如果应用程序关闭,您的willPresent
函数不会被调用。
我无法在应用程序关闭时对其进行调试。可以给点建议吗
我认为 willPresent 函数没有调用。
我已经告诉过你了。
【参考方案1】:
您将其存储在错误的功能中。 Will Present 仅在应用程序处于前台时被调用。所以当应用程序在后台时它不会工作,而不是 Will Present 函数使用确实接收远程函数:
func application(_ application: UIApplication, didReceiveRemoteNotification data: [AnyHashable : Any])
let response = notification.request.content.userInfo["aps"] as! NSDictionary
self.defaults.set("1", forKey: "notifyid")
注意:请确保在后台模式下的应用功能中您的远程通知和后台获取。否则它将无法正常工作。
【讨论】:
兄弟,我用过通知服务和通知内容,用于丰富的自定义推送通知,这个功能不会命中,有什么其他建议。以上是关于Core Data 和 Userdefaults 不存储数据的主要内容,如果未能解决你的问题,请参考以下文章