【问题标题】:NsuserDefaults key returns (null)NsuserDefaults 键返回 (null)
【发布时间】:2015-02-17 07:03:20
【问题描述】:

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

【问题讨论】:

标签: ios nsuserdefaults


【解决方案1】:

您没有以正确的方式检查条件。请按以下方式进行:

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

【讨论】:

    【解决方案2】:

    这是检查键的特定值是否存在的最简单方法

    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");
    }
    

    【讨论】:

      【解决方案3】:
      if(([[NSUserDefaults standardUserDefaults] objectForKey:@"YOUR_KEY"]) != (id)[NSNull null] || [([[NSUserDefaults standardUserDefaults] objectForKey:@"YOUR_KEY"]) length] != 0)) {
      
      // value available 
      }
      else{
      // null
      }
      

      【讨论】:

        【解决方案4】:

        如果 NSUserDefaults 中没有对象,它肯定会返回 nil。更何况它只是在安装之后,它应该只包含一些 Apple 密钥(例如 AppleLanguages)。您可以通过在 [UIApplicationDelegate application:didFinishLaunchingWithOptions:] 方法中的某处添加此行来检查其内容:

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

        如果您只想添加一个默认值,请考虑使用 [NSUserDefaults registerDefaults] 方法,如下所述:What is the use of -[NSUserDefaults registerDefaults:]?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-08
          • 1970-01-01
          相关资源
          最近更新 更多