Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- extension UIColor {
- func rgb() -> [Int] {
- var fRed : CGFloat = 0
- var fGreen : CGFloat = 0
- var fBlue : CGFloat = 0
- var fAlpha: CGFloat = 0
- if self.getRed(&fRed, green: &fGreen, blue: &fBlue, alpha: &fAlpha) {
- let iRed = Int(fRed * 255.0)
- let iGreen = Int(fGreen * 255.0)
- let iBlue = Int(fBlue * 255.0)
- let iAlpha = Int(fAlpha * 255.0)
- return [iRed, iGreen, iBlue, iAlpha]
- } else {
- // Could not extract RGBA components:
- return []
- }
- }
- }
- extension UserDefaults {
- func color(forKey defaultName: String) -> UIColor? {
- var color: UIColor?
- if let colorData = data(forKey: defaultName) {
- let colorArray = NSKeyedUnarchiver.unarchiveObject(with: colorData) as! [Int]
- color = UIColor(red: CGFloat(colorArray[0])/255, green: CGFloat(colorArray[1])/255, blue: CGFloat(colorArray[2])/255, alpha: CGFloat(colorArray[3])/255)
- }
- return color
- }
- func set(_ value: UIColor?, forKey defaultName: String) {
- var colorData: NSData?
- if let colorArray = value?.rgb() {
- colorData = NSKeyedArchiver.archivedData(withRootObject: colorArray) 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()]
- //Saving
- UserDefaults.standard.set(myObject, forKey: "myKey")
- //Extracting
- let defaultColor : UIColor = UserDefaults.standard.color(forKey: "myKey")!
- let indx : Int = objectArray.index(where: { $0.rgb() == defaultColor.rgb() })!
- print(indx)
Advertisement
Add Comment
Please, Sign In to add comment