2016-09-15 57 views
2

这似乎是一个错误 - 请帮助。我试图删除默认值中的现有值。XCode 8/Swift 3 UserDefaults.standard设置为无错误

UserDefaults.standard.set(nil, forKey: "test-me") 
let val = UserDefaults.standard.object(forKey: "test-me") 
print ("val=\(val)") 

我得到了下面的输出 -

val=Optional(<62706c69 73743030 d4010203 04050608 09582476 65727369 6f6e5824 6f626a65 63747359 24617263 68697665 72542474 6f701200 0186a0a1 0755246e 756c6c5f 100f4e53 4b657965 64417263 68697665 72d10a0b 54726f6f 74800008 111a232d 3237393f 51545900 00000000 00010100 00000000 00000c00 00000000 00000000 00000000 00005b>) 

我在XCode中运行的8/10的iOS/iPhone的7模拟器。

+0

我最初发布

UserDefaults.standard.removeObject(forKey: "test-date") 

然后,您将可能再“无” [这个问题](http://stackoverflow.com/questions/39515942/xcode-8-swift-3-ios-10-saving-nsdate-error),但描述和解决方案都是错误的... –

回答

6

Rob在其他帖子中的评论看起来是正确的。将该值设置为“nil”会将其保存为NSData。要删除键,试试这个来代替:做的时候object(forKey: "test-date")

+0

谢谢!不知何故,我没有看到removeObject API。 –