小弟使用UserDefaults(suitName: xxx)
在Extension
與ViewController
中互相傳遞資料
主要是儲存在App關閉&背景情況下的推播通知,用這個方式有一個問題,就是當有兩則以上的通知,只會顯示最後一則通知,前面的資料都會被覆蓋UserDefaults
資料格式已使用array儲存
是否有方法可以讓每次資料丟進UserDefaults
,而不會覆蓋舊值?
或是是否有別種方法可以實踐我的方法
儲存
let defaults = UserDefaults(suiteName: "group.myapp")
defaults?.set(title, forKey: "extitle")
defaults?.set(body, forKey: "exbody")
讀取
if let userDefaults = UserDefaults(suiteName: "group.myapp") {
if (userDefaults.string(forKey: "extitle") != nil) && (userDefaults.string(forKey: "exbody") != nil) {
savenotification()
userDefaults.removeObject(forKey: "t")
userDefaults.removeObject(forKey: "m")
userDefaults.synchronize()
}
}
另外一個問題是
目前讀取的func
是放在 AppDelegate
applicationWillEnterForeground
中..
因為我不知道要怎麼讓讀取的功能在app背景&關閉的情況下也能執行,所以只好把功能塞到這邊執行,不知道是什麼原因,有時候會閃退(前景執行時收到推播)
如果小弟有問題描述不清楚的地方還請各位大大指點我,兩則問題也請各位大大幫助小弟了,感激萬分!