2011-05-06 11 views
0

NSUserDefaultsのキーにBOOLを設定しようとしていますが、起動するたびにコンソールにNSLog(@"called");が表示されているので、動作していないようです。私が間違っている場所を教えていただけたら、本当に感謝しています。NSUserDefaultsの値が設定されていません

for (int i = 0; i < 7; i++) { 
     CheckBox*btn = [[CheckBox alloc] init]; 
     [btn setFrame:CGRectMake(0, 0, 40, 40)]; 
     [btn setTag:i]; 
     UIImage *img = [UIImage imageNamed:[[NSUserDefaults standardUserDefaults] boolForKey:[NSString stringWithFormat:@"%i", btn.tag]] ? @"checkbox.png":@"checkbox-pressed.png"]; 
     [btn setImage:img forState:UIControlStateNormal]; 
     [_checkboxArray addObject:btn]; 
     [btn release]; 
     [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:i inSection:0]] withRowAnimation:UITableViewScrollPositionBottom]; 
    } 
    if ([[NSUserDefaults standardUserDefaults] boolForKey:kFL]) { 
     return; 
    } 
    else { 
     NSMutableArray *custArr = [[NSMutableArray alloc] init]; 
     for (int i = 0; i < [_checkboxArray count]; i ++) { 
      CheckBox *c = (CheckBox *)[_checkboxArray objectAtIndex:i]; 
      [c setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal]; 
      [[NSUserDefaults standardUserDefaults] setBool:YES forKey:[NSString stringWithFormat:@"%i", [c tag]]]; 
      [custArr addObject:c]; 
     } 
     [_checkboxArray removeAllObjects]; 
     [_checkboxArray addObjectsFromArray:custArr]; 
     [custArr release]; 
     [self.tableView reloadData]; 
     NSLog(@"called"); 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kFL]; 

    } 

答えて

2

変更を加えた後、あなたは

[[NSUserDefaults standardUserDefaults] synchronize]; 

を呼び出していることを確認してください

関連する問題