如何知道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. 分割(含有还包含逗号值)
- 2. Javascript文件应包含BOM还是不包含?
- 3. 自包含或不包含子包?
- 4. 的Xpath还父子包含spesific价值
- 5. 包含空值
- 6. 包含空值
- 7. Java等于还是包含方法?
- 8. Ruby mixin:扩展还是包含?
- 9. IntPtr不包含本地值
- 10. 它不包含布尔值
- 11. JDK包含src.zip,但JRE不包含
- 12. Scala Spark包含vs不包含
- 13. 包含Typedefs,但不包含函数
- 14. 在#ifndef's中包含#包含 - 是否添加任何值?
- 15. Mongodb:数组包含值并且不包含另一个
- 16. PHP包含而不是iFrames?
- 17. 命令处理程序应该包含服务还是服务包含命令?
- 18. MySQL:不包含
- 19. 'Newtonsoft.Json.Linq.JArray' 不包含
- 20. 不包含I386
- 21. 不包含ListItemAllFields
- 22. Xpath不包含
- 23. 不含定义为“包含”
- 24. GET值包含XML
- 25. MongoDB $包含NaN值
- 26. 列默认值还是包含在插入脚本中?
- 27. 字典值包含字典和值包含数组
- 28. 选择值,但不包括它是否包含另一个
- 29. 在android中如何搜索那个sharedpreference包含一些值还是不是?
- 30. request.META不包含头
感谢它的工作 – 2012-02-09 07:20:29
真棒解决方案... :) – Adi 2014-06-24 10:14:03