import UIKit
extension UserDefaults {
func color(forKey defaultName: String) -> UIColor? {
var color: UIColor?
if let colorData = data(forKey: defaultName) {
color = NSKeyedUnarchiver.unarchiveObject(with: colorData) as? UIColor
}
return color
}
func set(_ value: UIColor?, forKey defaultName: String) {
var colorData: NSData?
if let color = value {
colorData = NSKeyedArchiver.archivedData(withRootObject: color) as NSData?
}
set(colorData, forKey: defaultName)
}
}
extension UIColor {
class func paper() -> UIColor {
return UIColor(red:248/255, green:236/255, blue:194/255, alpha:1.0)
}
}
let myObject: UIColor = UIColor.paper()
let objectArray = [UIColor.white, UIColor.lightGray, UIColor.red, UIColor.paper()]
print(myObject)
//Prints: UIExtendedSRGBColorSpace 0.972549 0.92549 0.760784 1
print(objectArray)
//Prints: [UIExtendedGrayColorSpace 1 1, UIExtendedGrayColorSpace 0.666667 1, UIExtendedSRGBColorSpace 1 0 0 1, UIExtendedSRGBColorSpace 0.972549 0.92549 0.760784 1]
let indx : Int = objectArray.index(where: { $0 == myObject })!
print(indx)
//Prints: 3
//Saving
UserDefaults.standard.set(myObject, forKey: "myKey")
//Extracting
let defaultColor : UIColor = UserDefaults.standard.color(forKey: "myKey")!
print(defaultColor)
//Prints: UIExtendedSRGBColorSpace 0.972549 0.92549 0.760784 1
let indexOfSavedColor : Int = objectArray.index(of: defaultColor)!
//Error Message here: fatal error: unexpectedly found nil while unwrapping an Optional value
print(indexOfSavedColor)
Comments