[英]Storing Push Notification Data into UserDefault iOS Swift
Working on push notification and want to store the data into UserDefault.处理推送通知并希望将数据存储到 UserDefault 中。 When I checking through break point it return nil I don't know why values are nil.See my code below thanks.当我检查断点时它返回 nil 我不知道为什么值是 nil。请参阅下面的代码,谢谢。
struct PushInfo: Encodable {
var body: String
var title : String
var url: String
}
var pushInfo: PushInfo?
pushInfo?.body = data["body"] as? String ?? ""
pushInfo?.url = data["url"] as? String ?? ""
pushInfo?.title = data["title"] as? String ?? ""
UserDefaults.standard.setValue(pushInfo, forKeyPath: "PushInfo")
if let pushData = UserDefaults.standard.object(forKey: "PushInfo") as? PushInfo {
print(pushData.title)
}
struct PushInfo: Codable {
var body: String
var title : String
var url: String
}
// MARK: - Codable helper
extension Encodable {
func toString() -> String? {
if let config = try? JSONEncoder().encode(self) {
return String(data: config, encoding: .utf8)
}
return .none
}
}
extension Decodable {
static func map(JSONString: String) -> Self? {
try? JSONDecoder().decode(Self.self, from: JSONString.data(using: .utf8) ?? .init())
}
}
let pushInfo = PushInfo(body: "1", title: "2", url: "3")
UserDefaults.standard.set(pushInfo.toString(), forKey: "PushInfo")
if let str = UserDefaults.standard.string(forKey: PushInfo), let object = PushInfo.map(JSONString: str) {
print("here \(object)")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.