当我创建一个整数为Object的NSDictionary时,应用程序崩溃

时间:2010-02-23 23:07:11

标签: objective-c cocoa integer nsdictionary

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

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

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

2 个答案:

答案 0 :(得分:39)

使用NSNumber代替原始int

现代目标-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];

答案 1 :(得分:4)

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