0

このコードをプレイグラウンドでテストしています。私が理解していないのは、なぜ結果が常にゼロなのですか? 手伝ってくれてありがとう

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)

ここに画像の説明を入力

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 に答える