0

I'm testing this code in playground. What I don't understand is, why is result always nil? Thanks for help

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

4

1 回答 1

2

操场上发生了一些棘手的事情,尤其是在 Xcode 7 中。我可以对您的代码进行一些更改以在 Xcode 6.4 上工作,并进行一些更改:

你应该使用setObject:forKeynot 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)
于 2015-09-13T20:34:48.777 回答