【发布时间】:2014-10-14 18:02:08
【问题描述】:
我想将 Swift 样式字符串数组保存到 NSUserDefaults 中,但实际上代码中的“if”语句表明 returnValue 始终为 nil。
稍后在代码中 (iOS 8) 我想使用 "food += ["spaghetti"] 添加新条目。
var food : [String] {
get {
var returnValue : [String]? = NSUserDefaults.standardUserDefaults().objectForKey("food") as? [String]
if returnValue == nil //Check for first run of app
{
returnValue = ["muesli", "banana"]; //Default value
}
return returnValue!
}
set (newValue) {
NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "food")
NSUserDefaults.standardUserDefaults().synchronize()
}
}
【问题讨论】:
-
我也尝试了这个link 的几件事,但它没有提出解决方案
-
看来您的问题是您永远不会将这些值保存到用户默认值中,因为向数组中添加新项目不会调用设置器。您需要在某处直接设置实际的
food(例如food = ["such", "and", "such"])才能将其保存。 -
我刚刚在最新的 Xcode7 和 Swift2.0 中尝试过你的代码,它实际上是完美的。
-
这是 NSUserDefault 的最佳示例:iosdevcenters.blogspot.com/2016/05/…
标签: ios swift string nsarray nsuserdefaults