我正在尝试将设备 token 保存到NSUserDefaults
,但我做不到。
我的代码:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
var currentToken=preferences.stringForKey(pushTokenKey)
if currentToken != deviceToken {
var dataString = NSString(data: deviceToken, encoding:NSUTF8StringEncoding) as String?
self.preferences.setValue(dataString, forKey: pushTokenKey)
self.preferences.synchronize()
}
}
您可以看到我正在比较 token ,如果它们不相同,我将对其进行更新。但是我猜它总是保存为
nil
,因为deviceToken
是NSData
。我该如何解决这个问题?
最佳答案
您得到nil的原因是因为它无法将NSData转换为NSString
通过使用deviceToken.description
,您将获得字符串 token 。
var currentToken=preferences.stringForKey(pushTokenKey)
if currentToken != deviceToken.description { // Here you were comparing String and NSData ?? :S
var dataString = deviceToken.description
self.preferences.setValue(dataString, forKey: pushTokenKey)
self.preferences.synchronize()
}
关于ios - 将deviceToken保存到NSUserDefaults,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30174660/