required init(coder aDecoder: NSCoder) { let colorArray = aDecoder.decodeObjectForKey("colors") as! [CGFloat] self.CGColor = CGColorCreate(CGColorSpaceCreateDeviceRGB(), colorArray) super.init() } func encodeWithCoder(aCoder: NSCoder) { let colors = CGColorGetComponents(CGColor) let colorBuffer = UnsafeBufferPointer(start: colors, count: 4) let colorArray = [CGFloat](colorBuffer) aCoder.encodeObject(colorArray, forKey: "colors") }