ios - NSDictionary valueForKey 崩溃

标签 ios objective-c key-value-coding

如何从下面的 NSMutableArray 数组中检索键值。以下代码在 isEqualToString 上崩溃。但是,在运行该语句之前,我可以在变量 View 窗口中看到 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);
        }

这里的任何人都可以帮助我获得 key 的正确值吗? 谢谢。

最佳答案

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

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

关于ios - NSDictionary valueForKey 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15513419/

相关文章:

ios - IBOutlet for element in containerview inside original viewcontroller

ios - 如何在计算属性上设置值

android - 处理来自多个服务器的远程推送通知

objective-c - 什么时候应该在 Objective-C 方法名称中使用 "and"?

swift - Swift 中键值编码的使用

ios - 包含 NSNull 值的集合的键值编码和集合运算符

ios - 如何在 iOS 应用程序上同步 UITableView 滚动和 CoraData 获取?

ios - 如何以编程方式显示具有 Storyboard 中定义的导航 Controller 和标签栏 Controller 的 Controller ?

iphone - 为什么我必须分配一个对象并在 Obj-C 中设置我的实例变量 = 该对象?

java - 有效获取对象的属性或强制声明类属性