1

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

4 回答 4

1

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

NSDictionary *dict = [nsMyList objectAtIndex:0];
nsret = [dict valueForKey:@"Key"];
于 2013-03-20T01:03:58.483 回答
1

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

NSString *nsRet = [[nsMyList objectAtIndex:0] objectForKey:@"Key"]
于 2013-03-20T01:03:59.230 回答
0

看起来您正在尝试获取valueForKey:NSMutableArray 而不是字典。

你想要的是:

[[nsMyList objectAtIndex:0] valueForKey:@"Key"];
于 2013-03-20T01:04:40.590 回答
0

我有点失落。

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

它会是这样的:

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

我认为它可以解决它。

于 2013-03-20T01:08:32.217 回答