ios - Can not get color from NSUserDefaults at first app launch -
i have big problem , not solve few days already.
when app loads @ first time, i'm saving 4 colors nsuserdeafaults in first uiviewcontroller.
viewcontroller.m
appdelegate *appdelegate = [[uiapplication sharedapplication] delegate]; nsuserdefaults *shareddefaults = [nsuserdefaults standarduserdefaults]; nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults]; nsinteger countvalue = [defaults integerforkey:@"array"]; if ([shareddefaults boolforkey:@"firstlaunch"]) { [self opensubview]; [shareddefaults setbool:no forkey:@"firstlaunch"]; [shareddefaults synchronize]; [self savecolorstodefaults]; // [prefs synchronize]; } // additional setup after loading view. else if(countvalue == 1) { } } -(void)savecolorstodefaults{ const cgfloat *components1 = cgcolorgetcomponents([uicolor darkgraycolor].cgcolor); const cgfloat *components2 = cgcolorgetcomponents([uicolor bluecolor].cgcolor); const cgfloat *components3 = cgcolorgetcomponents([uicolor redcolor].cgcolor); const cgfloat *components4 = cgcolorgetcomponents([uicolor purplecolor].cgcolor); nsuserdefaults *prefs = [nsuserdefaults standarduserdefaults]; [prefs setfloat:components1[0] forkey:@"cr"]; [prefs setfloat:components1[1] forkey:@"cg"]; [prefs setfloat:components1[2] forkey:@"cb"]; [prefs setfloat:components1[3] forkey:@"ca"]; [prefs setfloat:components2[0] forkey:@"cr2"]; [prefs setfloat:components2[1] forkey:@"cg2"]; [prefs setfloat:components2[2] forkey:@"cb2"]; [prefs setfloat:components2[3] forkey:@"ca2"]; [prefs setfloat:components3[0] forkey:@"cr3"]; [prefs setfloat:components3[1] forkey:@"cg3"]; [prefs setfloat:components3[2] forkey:@"cb3"]; [prefs setfloat:components3[3] forkey:@"ca3"]; [prefs setfloat:components4[0] forkey:@"cr4"]; [prefs setfloat:components4[1] forkey:@"cg4"]; [prefs setfloat:components4[2] forkey:@"cb4"]; [prefs setfloat:components4[3] forkey:@"ca4"]; [prefs synchronize]; nslog(@"i saved colors"); } and after need set these colors `drawviewcontrollers drawing instruments. can last 3 colors 1st color not apears.
but when set color 1st instrument via colorpicker , save colors again nsuserdefaults works great!
-(void)loadcolorsatstart { nsuserdefaults *prefers = [nsuserdefaults standarduserdefaults]; uicolor* tcolor = [uicolor colorwithred:[prefers floatforkey:@"cr"] green:[prefers floatforkey:@"cg"] blue:[prefers floatforkey:@"cb"] alpha:[prefers floatforkey:@"ca"]]; uicolor* tcolor2 = [uicolor colorwithred:[prefers floatforkey:@"cr2"] green:[prefers floatforkey:@"cg2"] blue:[prefers floatforkey:@"cb2"] alpha:[prefers floatforkey:@"ca2"]]; uicolor* tcolor3 = [uicolor colorwithred:[prefers floatforkey:@"cr3"] green:[prefers floatforkey:@"cg3"] blue:[prefers floatforkey:@"cb3"] alpha:[prefers floatforkey:@"ca3"]]; uicolor* tcolor4 = [uicolor colorwithred:[prefers floatforkey:@"cr4"] green:[prefers floatforkey:@"cg4"] blue:[prefers floatforkey:@"cb4"] alpha:[prefers floatforkey:@"ca4"]]; [prefers synchronize]; [self extractrgbforblack:tcolor]; [self extractrgbforblue:tcolor2]; [self extractrgbforred:tcolor3]; [self extractrgbforline:tcolor4]; [self.colorbar1 settextcolor:self.blackextract]; [self.colorbar2 settextcolor:self.blueextract]; [self.colorbar3 settextcolor:self.redextract]; [self.colorbar4 settextcolor:self.lineextract]; nslog(@"i have extracted colors"); } i have 5 similar drawviewcontrollers , works drawing uiview.
1.store uicolor nsdata nsuserdefaults
nsdata *colordata = [nskeyedarchiver archiveddatawithrootobject:color]; 2.retrive uicolor viewdidload
uicolor *color = [nskeyedunarchiver unarchiveobjectwithdata:colordata];
Comments
Post a Comment