2011-04-02 18 views
5

दुकान में पृष्ठभूमि रंग लोड -स्टोर करने के लिए कैसे और NSUserDefaults

-(IBAction) setMyColor:(id)sender{ 

if (sender == yellowButton) { 
    [colorView setBackgroundColor:[UIColor yellowColor]]; 
} 

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
UIColor *strColor = [colorView backgroundColor]; 
[userDefaults setObject:strColor forKey:@"myColor"]; 
[userDefaults synchronize]; 

}

लोड -

- (void)viewDidLoad { 

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
[colorView setBackgroundColor[UIColor [userDefaults objectForKey:@"myColor"]]]; 

[super viewDidLoad]; 

}

लेकिन इसे चलाने के लिए ... शायद विफल रहा है सवाल यह है कि 'UIView से पृष्ठभूमि मूल्य कैसे प्राप्त करें'?

उत्तर

13

आप

//save  
    NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:color]; 
    [[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"myColor"]; 

//retrieve 
    NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"myColor"]; 
    UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData]; 

or 

//save 
const CGFloat *components = CGColorGetComponents(pColor.CGColor); 
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
[prefs setFloat:components[0] forKey:@"cr"]; 
[prefs setFloat:components[1] forKey:@"cg"]; 
[prefs setFloat:components[2] forKey:@"cb"]; 
[prefs setFloat:components[3] forKey:@"ca"]; 

//retrieve 
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
UIColor* tColor = [UIColor colorWithRed:[prefs floatForKey:@"cr"] green:[prefs floatForKey:@"cg"] blue:[prefs floatForKey:@"cb"] alpha:[prefs floatForKey:@"ca"]]; 
+0

पहला विकल्प मेरे लिए काम किया जा सकता है। धन्यवाद! –

+0

इससे मुझे बहुत मदद मिली ... बहुत उपयोगी जीपी विधि क्योंकि NSUserDefaults नियमित वस्तुओं को स्टोर नहीं कर सकता (समझ में आता है - आपको उन्हें किसी भी अन्य स्टोरेज विधि के साथ क्रमबद्ध करना होगा)। धन्यवाद! –

संबंधित मुद्दे