objective c - How to save a color in NSUserDefaults in swift? -
objective c - How to save a color in NSUserDefaults in swift? -
i have litle problem saving color in nsuserdefaults . in objective-c easy :
-(nscolor *)colorforkey:(nsstring *)key{ nsdata *data; nscolor *color; info = [[nsuserdefaults standarduserdefaults] objectforkey:key]; color= [nsunarchiver unarchiveobjectwithdata:data]; if( ! [color iskindofclass:[nscolor class]] ){ color = nil; } homecoming color; } -(void)setcolor:(nscolor *)color forkey:(nsstring *)key{ nsdata *data = [nsarchiver archiveddatawithrootobject:color]; [[nsuserdefaults standarduserdefaults] setobject:data forkey:key]; }
the above code works fine in objective-c, when seek write same code in swift, receive errors @ reading color nsuserdefaults.
func savecolorforkey (color:nscolor , key:nsstring ) { var data:nsdata = nsdata() info = nsarchiver.archiveddatawithrootobject(color) nsuserdefaults.standarduserdefaults().setobject(data, forkey: key) } func colorforkey(key:nsstring) -> nscolor{ var data: anyobject? = nsuserdefaults.standarduserdefaults().objectforkey(key) var color: anyobject? = nsunarchiver.unarchiveobjectwithdata(data? nsdata) homecoming color nscolor }
thanks , , sorry english language !
for objective c
place this.
nsdata *colordata = [nskeyedarchiver archiveddatawithrootobject:color]; [[nsuserdefaults standarduserdefaults] setobject:colordata forkey:@"mycolor"];
to this.
nsdata *colordata = [[nsuserdefaults standarduserdefaults] objectforkey:@"mycolor"]; uicolor *color = [nskeyedunarchiver unarchiveobjectwithdata:colordata];
for swift
set this
var userselectedcolor : nsdata? = (nsuserdefaults.standarduserdefaults().objectforkey("userselectedcolor") as? nsdata) if (userselectedcolor != nil) { var colortosetasdefault : uicolor = uicolor.redcolor() var info : nsdata = nskeyedarchiver.archiveddatawithrootobject(colortosetasdefault) nsuserdefaults.standarduserdefaults().setobject(data, forkey: "userselectedcolor") nsuserdefaults.standarduserdefaults().synchronize() println("set default user color red") }
get this.
if allow userselectedcolordata = nsuserdefaults.standarduserdefaults().objectforkey("userselectedcolor") as? nsdata { if allow userselectedcolor = nskeyedunarchiver.unarchiveobjectwithdata(userselectedcolordata) as? uicolor { println(userselectedcolor) } }
objective-c swift nsuserdefaults osx-yosemite
Comments
Post a Comment