【问题标题】:App crashes when I create a NSDictionary with integer as Object当我创建一个整数作为对象的 NSDictionary 时应用程序崩溃
【发布时间】:2011-01-20 07:36:35
【问题描述】:

当我尝试在 NSDictionary 中将整数设置为 Object 时,程序总是崩溃而没有消息(控制台中没有任何消息)。这段代码有什么问题? :

NSString *string = @"foo";
int number = 1;

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                        string, @"bla1", number, @"bla2",nil];

【问题讨论】:

    标签: objective-c cocoa integer nsdictionary


    【解决方案1】:

    使用NSNumber 而不是原始的int

    现代 Objective-C:

    NSString *string = @"foo";
    NSNumber *number = @1;
    
    NSDictionary *params = @{@"bla1": string, @"bla2": number};
    

    旧式:

    NSString *string = @"foo";
    NSNumber *number = [NSNumber numberWithInt:1];
    
    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                        string, @"bla1", number, @"bla2",nil];
    

    【讨论】:

    • 大部分Cocoa集合类只能存储Objective-C对象,不能存储原始类型。
    【解决方案2】:

    在字典中,您必须存储对象,而不是 int、char 等主要类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      相关资源
      最近更新 更多