如何知道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