Приложение падает, когда я создаю NSDictionary с целым числом в качестве объекта - PullRequest
14 голосов
/ 24 февраля 2010

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

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

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

Ответы [ 2 ]

39 голосов
/ 24 февраля 2010

Используйте 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];
4 голосов
/ 24 февраля 2010

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

...