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

标签 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

最佳答案

您可以通过以下方式完成

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

关于ios - 将一组颜色保存到用户默认值 - iOS Swift 2.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37898250/

相关文章:

ios - CLLocationManager授权消息

ios - Delphi XE4 FireMonkey/iOS DrawBitmap 不工作

ios - Swift - 具有实现通用协议(protocol)的值的 Typealias 字典

swift - 如何使用 SwiftUI 在警报中使用导航

ios - 在 iOS 上存储对象 - 最佳解决方案?

ios - Alamofire 2.0 和 Swift 2 - 标题不工作。查看如何修复它

ios - 无法使用类型为 'UnsafeMutablePointer<Float>' 的参数列表调用类型为 '(UnsafeMutableRawPointer!)' 的初始值设定项

ios - 使用 NSUserdefaults 在游戏中保存分数

ios - 使用 UserDefaults 在 SKScene 之间传递字符串

ios - 如何访问 UIColor 的 RGB 值?