Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 17th, 2012  |  syntax: None  |  size: 2.85 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Can't save UIPickerView value in NSUserDefaults
  2. -(void)viewWillAppear: (BOOL) animated {
  3.     NSUserDefaults *defaultsPicker = [NSUserDefaults standardUserDefaults];
  4.     picker = [defaultsPicker objectForKey:@"picker"] ;
  5. }
  6.  
  7. - (void)viewDidLoad {
  8.  
  9.     NSArray *ar1 = [NSArray array];
  10.     for (int i = 150; i <= 210; i++)
  11.         ar1 = [ar1 arrayByAddingObject:[NSString stringWithFormat:@"%d",i]];
  12.     [ar1 retain];
  13.     self.array1 = ar1;
  14.  
  15.     NSArray *ar2 = [NSArray array];
  16.     for (int j = 40; j <= 130; j++)
  17.         ar2 = [ar2 arrayByAddingObject:[NSString stringWithFormat:@"%d",j]];
  18.     [ar2 retain];
  19.     self.array2 = ar2;
  20.  
  21.  
  22.     [super viewDidLoad];
  23.  
  24. }
  25.        
  26. -(IBAction)calculate {
  27.     NSUserDefaults *defaultsPicker = [NSUserDefaults standardUserDefaults];
  28.     [defaultsPicker setObject:[NSNumber numberWithInt:[picker selectedRowInComponent:0 ]] forKey:@"picker"];
  29.     [defaultsPicker synchronize];
  30.  
  31.     //bla bla
  32. }
  33.        
  34. *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFNumber selectedRowInComponent:]: unrecognized selector sent to instance 0x690df40'
  35.        
  36. #pragma mark -
  37. #pragma mark Picker Data Source Methods
  38. - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
  39. {
  40.     return 2;
  41. }
  42. - (NSInteger)pickerView:(UIPickerView *)pickerView
  43. numberOfRowsInComponent:(NSInteger)component {
  44.     if (component == secondArrayComponent) {
  45.         return [self.array2 count];
  46.     }else {
  47.         return [self.array1 count];
  48.     }
  49. }
  50.  
  51.  
  52. #pragma mark Picker Delegate Methods
  53. - (NSString *)pickerView:(UIPickerView *)pickerView
  54.              titleForRow:(NSInteger)row forComponent:(NSInteger)component {
  55.     if (component == secondArrayComponent) {
  56.         return [self.array2 objectAtIndex:row];
  57.     }else {
  58.         return [self.array1 objectAtIndex:row];
  59.     }
  60. }
  61.        
  62. #pragma mark -
  63. #pragma mark Picker Data Source Methods
  64. - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
  65. {
  66.     return 2;
  67. }
  68. - (NSInteger)pickerView:(UIPickerView *)pickerView
  69. numberOfRowsInComponent:(NSInteger)component {
  70.     if (component == secondArrayComponent) {
  71.         return [self.array2 count];
  72.     }else {
  73.         return [self.array1 count];
  74.     }
  75. }
  76.  
  77.  
  78. #pragma mark Picker Delegate Methods
  79. - (NSString *)pickerView:(UIPickerView *)pickerView
  80.              titleForRow:(NSInteger)row forComponent:(NSInteger)component {
  81.     if (component == secondArrayComponent) {
  82.         return [self.array2 objectAtIndex:row];
  83.     }else {
  84.         return [self.array1 objectAtIndex:row];
  85.     }
  86. }
  87.  
  88. - (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {    
  89.     NSInteger selectedRow = [thePickerView selectedRowInComponent:0];
  90.     [[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:@"picker"];
  91. }
  92.        
  93. NSInteger pickerRow = [[NSUserDefaults standardUserDefaults] integerForKey:@"picker"];
  94. NSLog(@"%i", pickerRow);