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

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -