Skip to content

Commit c2c4b08

Browse files
committed
NSCoding
1 parent ac5cbd5 commit c2c4b08

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

ColorSet/Classes/ColorItem.swift

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import Cocoa
2626

27-
class ColorItem: NSObject
27+
class ColorItem: NSObject, NSCoding
2828
{
2929
@objc public dynamic var name = "Untitled"
3030
@objc public dynamic var hasVariant = false
@@ -174,4 +174,41 @@ class ColorItem: NSObject
174174

175175
self.updating = false
176176
}
177+
178+
func encode( with coder: NSCoder )
179+
{
180+
coder.encode( self.name, forKey: "n" )
181+
coder.encode( self.hasVariant, forKey: "v" )
182+
183+
coder.encode( self.red, forKey: "r1" )
184+
coder.encode( self.green, forKey: "g1" )
185+
coder.encode( self.blue, forKey: "b1" )
186+
coder.encode( self.alpha, forKey: "a1" )
187+
188+
coder.encode( self.red2, forKey: "r2" )
189+
coder.encode( self.green2, forKey: "g2" )
190+
coder.encode( self.blue2, forKey: "b2" )
191+
coder.encode( self.alpha2, forKey: "a2" )
192+
}
193+
194+
required init?( coder: NSCoder )
195+
{
196+
guard let n = coder.decodeObject( forKey: "n" ) as? String else { return nil }
197+
198+
self.name = n
199+
self.hasVariant = coder.decodeBool( forKey: "v" )
200+
201+
self.red = CGFloat( coder.decodeDouble( forKey: "r1" ) )
202+
self.green = CGFloat( coder.decodeDouble( forKey: "g1" ) )
203+
self.blue = CGFloat( coder.decodeDouble( forKey: "b1" ) )
204+
self.alpha = CGFloat( coder.decodeDouble( forKey: "a1" ) )
205+
206+
self.red2 = CGFloat( coder.decodeDouble( forKey: "r2" ) )
207+
self.green2 = CGFloat( coder.decodeDouble( forKey: "g2" ) )
208+
self.blue2 = CGFloat( coder.decodeDouble( forKey: "b2" ) )
209+
self.alpha2 = CGFloat( coder.decodeDouble( forKey: "a2" ) )
210+
211+
super.init()
212+
213+
}
177214
}

0 commit comments

Comments
 (0)