如何遍历字典以查看其值?

时间:2019-09-23 09:43:58

标签: objective-c xcode dictionary for-loop

我试图摆脱Objective-C的束缚,以及如何使用字典。我尝试了一个小例子,但对我来说却一直崩溃。这是我的字典,并尝试循环字典键。

NSDictionary *dictionary = @{
                             @"anObject" : @"@hej",
                             @"helloString" : @"Hello, World!",
                             @"magicNumber" : @42,
                             @"aValue" : @33
                             };

for(NSString *key in dictionary) {
    NSLog(@"key:%@", key);
    NSLog(@"value:%@", [[dictionary valueForKey:key] string]);
}

它以Thread 1: signal SIGABRT

崩溃
  

由于未捕获的异常而终止了应用程序>'NSInvalidArgumentException',原因:'-[__ NSCFConstantString字符串]:>无法识别的选择器发送到实例0x1078590a8'

在返回行上:

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil,     
        NSStringFromClass([AppDelegate class]));
    }

1 个答案:

答案 0 :(得分:1)

已更新

NSLog()将调用您传递的任何对象的[NSObject description]方法,因此这对您来说很好:

NSLog(@"value:%@", dictionary[key]);

没有string方法,所以这就是为什么您收到无法识别的选择器异常的原因。