如何知道NSUserDefaults
是否包含任何值?如何检查它是否为空?NSUserDefaults包含值还是不包含?
回答
没有办法检查NSUserDefaults中的对象是否为空。 但是,您可以检查特定密钥的值是否为零。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSObject * object = [prefs objectForKey:@"your_particular_key"];
if(object != nil){
//object is there
}
NSUserDefaults *data = [NSUserDefaults standardUserDefaults];
NSString *string = [data objectForKey:@"yourKey"];
if(string==nil)
NSlog(@"nil")
// For saving the values
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
// saving an NSString
[userDefaults setObject:@"Ttest" forKey:@"key"];
// --- For Retrieving
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [userDefaults stringForKey:@"key"];
你应该比较为零,而不是NULL,因为@Krishnabhadra说。 – 2012-02-09 06:29:28
@PhilippeSabourin谢谢。 NULL是一个void *,nil是一个id。 – 2012-02-09 06:36:57
要检查特定值是否设置与否,没有它的位置的物质(全局或应用程序),检查-[NSUserDefaults objectForKey:]
返回值
id obj = [[NSUserDefaults standardUserDefaults] objectForKey:@"My-Key-Name"];
if (obj != nil) {...}
要检查应用程序(包)是否有任何设置存储在用户默认值:
NSUserDefaults* sdu = [NSUserDefaults standardUserDefaults];
NSString* bundleId = [[NSBundle mainBundle] bundleIdentifier];
NSDictionary* mainBundleSettings = [sdu persistentDomainForName:bundleId];
NSLog(@"%@", mainBundleSettings);
如果你有兴趣在所有可能的值,这-[NSUserDefaults objectForKey:]
将返回的东西,包括系统的全局设置,只需拨打
NSDictionary* allPossibleSettings = [sdu dictionaryRepresentation];
NSUserDefaults
是从来没有空。它结合了全局设置,包的设置,临时数据以及其他的东西。例如,如果您拨打:
[[NSUserDefaults standardUserDefaults] objectForKey:@"NSBoldSystemFont"]
你会得到将从全局设置取,甚至当你的应用程序从未设置这个值@"LucidaGrande-Bold"
字符串值。
- 1. 是包含L2还是不包含在i7 CPU 860 @ 2.80GHz?
- 2. 分割(含有还包含逗号值)
- 3. Javascript文件应包含BOM还是不包含?
- 4. xml标签可以包含整数值还是可以包含特殊字符?
- 5. 自包含或不包含子包?
- 6. 的Xpath还父子包含spesific价值
- 7. 还包含HTML代码
- 8. 包含值xslt2
- 9. 包含空值
- 10. 包含空值
- 11. Java等于还是包含方法?
- 12. Ruby mixin:扩展还是包含?
- 13. JSON是否包含空值
- 14. IntPtr不包含本地值
- 15. INT不包含定义值
- 16. 它不包含布尔值
- 17. 在#ifndef's中包含#包含 - 是否添加任何值?
- 18. Smarty包含不包含文件
- 19. 包含并不包含任何东西
- 20. 都不:包含或包含工作
- 21. 包含Typedefs,但不包含函数
- 22. Scala Spark包含vs不包含
- 23. JDK包含src.zip,但JRE不包含
- 24. 命令处理程序应该包含服务还是服务包含命令?
- 25. Hadoop分布式缓存可以包含文件夹还是仅包含文件?
- 26. PHP包含而不是iFrames?
- 27. C++:包含在包含内
- 28. Mongodb:数组包含值并且不包含另一个
- 29. 返回只包含空值的列,不包含空格
- 30. 复选框包含值但不包含标题
感谢它的工作 – 2012-02-09 07:20:29
真棒解决方案... :) – Adi 2014-06-24 10:14:03