使用 Struct 从 NSUserDefaults 保存和读取 NSArray
Save and Read NSArray from NSUserDefaults using Struct
我正在尝试使用结构和 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)
那么这个问题的最佳解决方案是什么
在此处检查方法 setObject(:forKey:)
的语法 forKey
是 String
参数的类型,因此将 XX
类型从 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。
我的意思是,您需要将 'key' 用作字符串而不是字符串数组。
使用它来保存密钥。
其他可以保持不变。
struct ServiceKey{
static let XX = "xx"
}
问题似乎是您使用数组作为键(首先作为值)。键应该是一个字符串,所以它将使用数组实例的描述。
当您获取时,描述可能会有所不同。所以要让它工作:使用一个字符串作为键,一个 (NS)Array 作为值。
在你的情况下:
-ServiceKey.XX 应该是一个字符串
-首先应该是一个数组
我正在尝试使用结构和 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)
那么这个问题的最佳解决方案是什么
在此处检查方法 setObject(:forKey:)
的语法 forKey
是 String
参数的类型,因此将 XX
类型从 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。
我的意思是,您需要将 'key' 用作字符串而不是字符串数组。 使用它来保存密钥。 其他可以保持不变。
struct ServiceKey{
static let XX = "xx"
}
问题似乎是您使用数组作为键(首先作为值)。键应该是一个字符串,所以它将使用数组实例的描述。 当您获取时,描述可能会有所不同。所以要让它工作:使用一个字符串作为键,一个 (NS)Array 作为值。 在你的情况下: -ServiceKey.XX 应该是一个字符串 -首先应该是一个数组