检查NSDictionary是否为空

Ste*_*ann 14 iphone objective-c nsdictionary nsmutablearray ios

我想检查一下是否NSDictionary为空.我是这样做的.

  mutDictValues = [[[NSUserDefaults standardUserDefaults] objectForKey:@"dicValues"]mutableCopy];
    NSLog(@"dictValues are %@",mutDictValues);
    if(mutDictValues == NULL){
        arrCities = [[NSMutableArray alloc]init];
        NSLog(@"no cities seleceted");
    }else{
          arrCities = [[NSMutableArray alloc]init];
          arrCities = [mutDictValues objectForKey:@"cities"];
          [self placeCities];
    }
Run Code Online (Sandbox Code Playgroud)

但它在这一行崩溃arrCities = [mutDictValues objectForKey:@"cities"];,出现以下错误:

-[__NSCFConstantString objectForKey:]:
Run Code Online (Sandbox Code Playgroud)

有人可以帮我弄这个吗 ?

Bal*_*alu 22

从NSUserDefaults检索字典值时,字典自动转换为字符串,这是导致崩溃和检查字典使用的原因

[dictionary count];
Run Code Online (Sandbox Code Playgroud)

编辑: - 使用dictionaryForKey:方法

NSDictionary *dict =[[NSDictionary alloc]initWithObjectsAndKeys:@"hi",@"one",nil];
[[NSUserDefaults standardUserDefaults] setObject:dict forKey:@"dic"];
NSDictionary *dictn = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"dic"];
NSLog(@"%@",[dictn objectForKey:@"one"]);
Run Code Online (Sandbox Code Playgroud)


ras*_*hii 5

if ( [mutDictValues count] == 0 ) {
    //code here
}
else {
    //code here
}
Run Code Online (Sandbox Code Playgroud)

在获取您的dic后,应该这样做