簡體   English   中英

NsuserDefaults鍵返回(空)

[英]NsuserDefaults key returns (null)

安裝后,Nsuserdefault鍵在初始運行時返回“(null)”。 我如何檢查密鑰是否存在。 我引用了許多鏈接,說要檢查是否為零。 但這沒有用。

enter code here

- (NSString *)getTalkText
{
    NSString *storedUsername = [[NSUserDefaults standardUserDefaults] objectForKey:PERS_STORED_TalkText];
    return storedUsername;
 }

if(![[[AppManager sharedManager] getTalkText]isEqualToString:@""] || [[AppManager sharedManager]getTalkText]!=nil)

    {
        self.talkTextView.text=[[AppManager sharedManager]getTalkText];
    }

您沒有以正確的方式檢查條件。 通過以下方式進行:

if([[AppManager sharedManager] getTalkText]!=nil && [[[AppManager sharedManager] getTalkText] length] > 0)
{
// Do the rest
}

這是檢查鍵的特定值是否存在的最簡單方法

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSObject * object = [userDefaults objectForKey:@"your_key"];
if(object != nil){
    NSLog(@"Object is not nil");
    //do your operations here
}else{
    NSLog(@"Object is nil");
}
if(([[NSUserDefaults standardUserDefaults] objectForKey:@"YOUR_KEY"]) != (id)[NSNull null] || [([[NSUserDefaults standardUserDefaults] objectForKey:@"YOUR_KEY"]) length] != 0)) {

// value available 
}
else{
// null
}

如果NSUserDefaults中沒有對象,則絕對應該返回nil。 如果只是在安裝后,它甚至應該只包含一些Apple鍵(例如AppleLanguages)。 您可以通過在[UIApplicationDelegate application:didFinishLaunchingWithOptions:]方法中的某處添加此行來檢查其內容:

NSLog(@"%@", [NSUserDefaultsstandardUserDefaults].dictionaryRepresentation);

如果只想添加默認值,請考慮使用[NSUserDefaults registerDefaults]方法,如下所述: -[NSUserDefaults registerDefaults:]的用途是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM