简体   繁体   English

NsuserDefaults键返回(空)

[英]NsuserDefaults key returns (null)

Nsuserdefault key returns "(null)" on initial run after installation. 安装后,Nsuserdefault键在初始运行时返回“(null)”。 How can i check a key exist or not. 我如何检查密钥是否存在。 I have refferred many links ,it say to check It is nill or not. 我引用了许多链接,说要检查是否为零。 But it didn't worked. 但这没有用。

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];
    }

you have not check the conditions in correct way. 您没有以正确的方式检查条件。 Do it by below way: 通过以下方式进行:

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

This is the simplest way to check if a particular value for a key is present of not 这是检查键的特定值是否存在的最简单方法

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
}

It should definitely return nil if there is no object in NSUserDefaults. 如果NSUserDefaults中没有对象,则绝对应该返回nil。 Even more if it's just after installation, it should only contain some Apple keys (eg AppleLanguages). 如果只是在安装后,它甚至应该只包含一些Apple键(例如AppleLanguages)。 You can inspect it's contents by adding this line somewhere in your [UIApplicationDelegate application:didFinishLaunchingWithOptions:] method: 您可以通过在[UIApplicationDelegate application:didFinishLaunchingWithOptions:]方法中的某处添加此行来检查其内容:

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

If you want to just add a default value, please consider using [NSUserDefaults registerDefaults] method as described here: What is the use of -[NSUserDefaults registerDefaults:]? 如果只想添加默认值,请考虑使用[NSUserDefaults registerDefaults]方法,如下所述: -[NSUserDefaults registerDefaults:]的用途是什么?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM