我使用以下代码通过 Swift 将值设置到 NSUserDefaults 中。这是我的代码:
let key = "ticker"
let currencyTickerData = [key:"USD"]
NSUserDefaults.standardUserDefaults().setObject(currencyTickerData, forKey: key)
NSUserDefaults.standardUserDefaults().synchronize()
let tickerVal : [NSString]? = (NSUserDefaults.standardUserDefaults().objectForKey(key)) as? [NSString]
print(tickerVal)
出于某种原因,tickerVal 为零。为什么是这样?据我所知,它应该返回“USD”。
最佳答案
NSUserDefaults 使用 NSDictionary 而不是 Swift 的字典类型。您可以像这样显式键入 tickerVal 作为 NSDictionary:
let key = "ticker"
let currencyTickerData: NSDictionary = [key:"USD"]
NSUserDefaults.standardUserDefaults().setObject(currencyTickerData, forKey: key)
NSUserDefaults.standardUserDefaults().synchronize()
let tickerVal = (NSUserDefaults.standardUserDefaults().objectForKey(key)) as NSDictionary
print("\(tickerVal)")
关于ios - objectForKey 在 Swift 中为 NSUserDefaults 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434333/