如何从以下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);
}
这里的任何人都可以帮我获得正确的钥匙价值吗? 感谢。
答案 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"]
我认为它可以解决它。