为什么NSUserDefaults总是返回nil?

时间:2015-09-13 19:45:36

标签: ios nsuserdefaults data-persistence

我在游乐场测试此代码。我不明白的是,为什么结果总是零?谢谢你的帮助

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)

enter image description here

1 个答案:

答案 0 :(得分:2)

操场上出现了一些棘手的问题,尤其是Xcode 7。我可以通过Xcode 6.4获取代码的变体,并进行一些更改:

您应该使用setObject:forKey而不是setValue:forKey

更改默认值后,您应该进行cal同步。

这里是修改后的代码(在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)