NSDictionary可以包含不同类型的对象作为值吗?

Chr*_*isP 7 objective-c nsdictionary

为什么以下导致BAD_ACCESS错误?

NSDictionary *header=[[NSDictionary alloc]initWithObjectsAndKeys:@"fred",@"title",1,@"count", nil];
Run Code Online (Sandbox Code Playgroud)

你可以在NSDictionary中使用不同类型的对象作为值,包括另一个NSDictionary吗?

Jef*_*ley 15

您可以将任何类型的对象放入NSDictionary.所以虽然@"fred"可以,但1不是,因为整数不是一个对象.如果要将数字放在字典中,请将其包装在NSNumber:

NSDictionary *header = { @"title": @"fred", @"count": @1 }; 
Run Code Online (Sandbox Code Playgroud)

  • 有趣.我习惯了C#,其中一切都是对象.谢谢. (2认同)