Сбои приложения, когда я создаю NSDictionary с целым числом как Объект

Всегда, когда я пытаюсь установить целое число как Объект в NSDictionary катастрофические отказы программы без сообщения (ничто в консоли). Что не так в этом коде?:

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

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                        string, @"bla1", number, @"bla2",nil];
14
задан Flocked 23 February 2010 в 23:07
поделиться

2 ответа

Используйте NSNumber вместо необработанного int :

Modern 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];
40
ответ дан 1 December 2019 в 06:39
поделиться

В словаре вы должны хранить объекты, а не основные типы, такие как int, char и т. Д.

{ {1}}
4
ответ дан 1 December 2019 в 06:39
поделиться