为什么 NSUserDefaults 总是 return nil?
Why does NSUserDefaults always return nil?
我正在操场上测试这段代码。我不明白的是,为什么结果总是零?感谢帮助
var value: String!
let key = "key24"
if value == nil{
value = "hehe"
let valueNS = NSString(string: value)
NSUserDefaults.standardUserDefaults().setValue(valueNS, forKey: key)
}
var result: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey(key)
print(result)
游乐场发生了一些奇怪的事情,尤其是 Xcode 7。我可以对你的代码进行一些修改,以在 Xcode 6.4 上运行,并进行一些更改:
您应该使用 setObject:forKey
而不是 setValue:forKey
。
您应该在更改默认值后进行同步。
这是修改后的代码(它在 Xcode 6.4 中工作,尽管在 Xcode 中测试它然后导致 Xcode 6.4 也失败。)
//: Playground - noun: a place where people can play
import UIKit
var value: String!
let key = "key24"
if value == nil
{
value = "hehe"
print("value was nil!")
NSUserDefaults.standardUserDefaults().setObject(value, forKey: key)
NSUserDefaults.standardUserDefaults().synchronize()
}
var result = NSUserDefaults.standardUserDefaults().stringForKey(key)
print(result)
我正在操场上测试这段代码。我不明白的是,为什么结果总是零?感谢帮助
var value: String!
let key = "key24"
if value == nil{
value = "hehe"
let valueNS = NSString(string: value)
NSUserDefaults.standardUserDefaults().setValue(valueNS, forKey: key)
}
var result: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey(key)
print(result)
游乐场发生了一些奇怪的事情,尤其是 Xcode 7。我可以对你的代码进行一些修改,以在 Xcode 6.4 上运行,并进行一些更改:
您应该使用 setObject:forKey
而不是 setValue:forKey
。
您应该在更改默认值后进行同步。
这是修改后的代码(它在 Xcode 6.4 中工作,尽管在 Xcode 中测试它然后导致 Xcode 6.4 也失败。)
//: Playground - noun: a place where people can play
import UIKit
var value: String!
let key = "key24"
if value == nil
{
value = "hehe"
print("value was nil!")
NSUserDefaults.standardUserDefaults().setObject(value, forKey: key)
NSUserDefaults.standardUserDefaults().synchronize()
}
var result = NSUserDefaults.standardUserDefaults().stringForKey(key)
print(result)