我试图摆脱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]));
}
答案 0 :(得分:1)
已更新
NSLog()
将调用您传递的任何对象的[NSObject description]
方法,因此这对您来说很好:
NSLog(@"value:%@", dictionary[key]);
没有string
方法,所以这就是为什么您收到无法识别的选择器异常的原因。