下面两行是等价的吗?
`[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"example key"]`
`[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"example key"]`
发布于 2011-05-19 22:08:53
是的,这两行代码是等价的,都会导致空读取
id obj = [[NSUserDefaults standardUserDefaults] objectForKey:@"example key"];
如果没有找到密钥,NSUserDefaults
将返回nil。我建议使用removeObjectForKey
,而不是将其设置为nil。
下面是如何测试是否将键值设置为nil从NSUserDefaults standardUserDefaults
中删除了键条目。
NSArray *keys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] copy];
for(NSString *key in keys) {
NSLog(@"Key Name: %@", key);
}
[keys release];
或者简单地转储NSUserDefaults standardUserDefaults
的键/值字典
NSLog(@"All contents of NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
https://stackoverflow.com/questions/6033174
复制相似问题