我尝试使用结构和NSUserDefaults
来保存字符串,一切顺利。
但我无法对NSArray
执行相同操作。
这是我的代码,
结构:
struct ServiceKey{
static let XX : NSArray = ["xx"]
}
保存:
let defaults = NSUserDefaults.standardUserDefaults()
var first = denominationsALFA as! NSArray
defaults.setObject(first, forKey: ServiceKey.XX)
阅读:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.arrayForKey(ServiceKey.XX)
所以这可能是解决这个问题的最佳方法
答案 0 :(得分:0)
检查方法setObject(:forKey:)
的语法forKey
是String
参数的类型,因此将XX
类型从String
更改为NSArray
然后使用setObject
和arrayForKey
方法。
struct ServiceKey{
static let XX: String = "xx"
}
现在在NSUserDefaults
let defaults = NSUserDefaults.standardUserDefaults()
var first = denominationsALFA as! NSArray
defaults.setObject(first, forKey: ServiceKey.XX)
从NSUserDefaults
let defaults = NSUserDefaults.standardUserDefaults()
var array = defaults.arrayForKey(ServiceKey.XX)
有关详情,请查看NSUserDefaults
上的Apple Documentation。
答案 1 :(得分:0)
我的意思是,你需要使用' key'作为字符串而不是字符串数组。 用它来保存密钥。 其他事情可以保持不变。
struct ServiceKey{
static let XX = "xx"
}
答案 2 :(得分:0)
问题似乎是你使用数组作为键(首先作为值)。密钥应该是String,因此它将使用Array-instance的描述。 当您获取描述时可能会有所不同。所以要使其工作:使用String作为键,使用(NS)Array作为值。 在你的情况下: -ServiceKey.XX应该是一个String -first应该是一个数组