删除NSUserDefaults中保存的复选标记

时间:2016-02-13 00:39:44

标签: ios objective-c

我正在研究我的项目,当我滚动时,表可以保留tableview单元格中的复选标记。我做到了,但我现在的问题是,我现在如何删除那些保存的复选标记?谢谢。

这是我用来保存复选标记的代码:

-(NSString *)getKeyForIndex:(int)index {
  return [NSString stringWithFormat:@"KEY%d",index];
}

-(BOOL)getCheckedForIndex:(int)index{
  if([[[NSUserDefaults standardUserDefaults] valueForKey:[self getKeyForIndex:index]] boolValue]==YES){
    return YES;
  }else{
    return NO;
  }
}

-(void)checkedCellAtIndex:(int)index{
  BOOL boolChecked = [self getCheckedForIndex:index];
  [[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithBool:!boolChecked] forKey:[self getKeyForIndex:index]];
  [[NSUserDefaults standardUserDefaults] synchronize];
}

1 个答案:

答案 0 :(得分:0)

要删除密钥使用removeObjectForKey:,要为密钥使用setBool:forKey:设置布尔值,以获取密钥使用boolForKey的布尔值。这些也可以在NSUserDefaults documentation

中找到

此外,无论你做什么都不写if(e == YES),只需写if(e)(前者可能会给你一个不正确的结果 - 为什么留下来作为练习);而不是写if(e) then return YES; else return NO;,其中eBOOL值表达式,通常最好写return e

HTH