NSDictionary valueForKey崩溃

时间:2013-03-20 01:01:08

标签: ios objective-c key-value-coding

如何从以下NSMutableArray数组中检索键值。以下代码在isEqualToString上崩溃。但是,在运行该语句之前,我可以在变量视图窗口中看到nsRet的值为@\x18\xaa\x01\xc8\a

        NSMutableArray* nsMyList = [[NSMutableArray alloc] init];
        [nsMyList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
                             @"valueOfKey", @"Key",
                             nil]];
        NSString *nsRet = [nsMyList valueForKey:@"Key"];
        if ([nsRet isEqualToString:@"deviceClass"])
        {
            NSLog(@"Key value:%@", nsRet);
        }

这里的任何人都可以帮我获得正确的钥匙价值吗? 感谢。

4 个答案:

答案 0 :(得分:1)

您已将NSDictionary存储在数组中。基于您的代码的正确访问将是:

NSDictionary *dict = [nsMyList objectAtIndex:0];
nsret = [dict valueForKey:@"Key"];

答案 1 :(得分:1)

这是因为您需要objectForKey:,而不是valueForKey:valueForKey:方法用于键值编程。此外,呼叫应该在[nsMyList objectAtIndex:0]上,如下所示:

NSString *nsRet = [[nsMyList objectAtIndex:0] objectForKey:@"Key"]

答案 2 :(得分:0)

看起来你试图在NSMutableArray而不是字典上获取valueForKey:

你想要的是:

[[nsMyList objectAtIndex:0] valueForKey:@"Key"];

答案 3 :(得分:0)

我有点失落。

要访问您刚刚创建的字典,您需要获取NSMutableArray中的第一个元素,然后获取字典。

会是这样的:

NSString *nsRet = [nsMyList[0] objectForKey:@"Key"]

我认为它可以解决它。