Jer*_*nd2 1 nsuserdefaults ios swift
我想知道如何将UIColors数组保存到用户默认值.
我有以下代码将单个UIColor保存到用户默认值,有没有人知道如何修改它以允许我在NS用户默认值中存储UIColor数组?
extension NSUserDefaults {
func colorForKey(key: String) -> UIColor? {
var color: UIColor?
if let colorData = dataForKey(key) {
color = NSKeyedUnarchiver.unarchiveObjectWithData(colorData) as? UIColor
}
return color
}
func setColor(color: UIColor?, forKey key: String) {
var colorData: NSData?
if let color = color {
colorData = NSKeyedArchiver.archivedDataWithRootObject(color)
}
setObject(colorData, forKey: key)
}
}Run Code Online (Sandbox Code Playgroud)
你可以通过以下方式完成
let colors = [UIColor.whiteColor(), UIColor.greenColor()] // Array of colors
NSUserDefaults.standardUserDefaults().setObject(NSKeyedArchiver.archivedDataWithRootObject(colors), forKey: "ColorsKey") //For saving in NSUserDefaults
//For retrieving use following
let decodedColorsData = NSUserDefaults.standardUserDefaults().objectForKey("ColorsKey") as! NSData
let colorsArray = (NSKeyedUnarchiver.unarchiveObjectWithData(decodedColorsData) as! NSArray) as Array
Run Code Online (Sandbox Code Playgroud)