我正在研究我的项目,当我滚动时,表可以保留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];
}
答案 0 :(得分:0)
要删除密钥使用removeObjectForKey:
,要为密钥使用setBool:forKey:
设置布尔值,以获取密钥使用boolForKey
的布尔值。这些也可以在NSUserDefaults
documentation。
此外,无论你做什么都不写if(e == YES)
,只需写if(e)
(前者可能会给你一个不正确的结果 - 为什么留下来作为练习);而不是写if(e) then return YES; else return NO;
,其中e
是BOOL
值表达式,通常最好写return e
。
HTH