将一系列颜色保存到用户默认值 - iOS Swift 2.3

时间:2016-06-18 14:49:29

标签: ios swift nsuserdefaults

我想知道如何将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)
    }
    
}

  • 我使用的是Swift 2.3

2 个答案:

答案 0 :(得分:6)

您可以按照以下方式执行此操作

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

答案 1 :(得分:0)

Swift 4.2:保存颜色/将颜色加载为用户默认设置 注意:默认值的加载有效,但包含一个不推荐使用的项目,尚无很好的示例替换它。

easy_install