какао target-c NSDictionary с целочисленными объектами - PullRequest
2 голосов
/ 16 февраля 2011

Почему dict2 показывает предупреждение о том, что его объект не является указателем, когда dict1 не показывает такого предупреждения?

Не должны ли оба показать это предупреждение? оба целые числа ..

* 1006 эрг.
NSDictionary *dict1 = [NSDictionary dictionaryWithObject:0 forKey:TAG_KEY];
NSDictionary *dict2 = [NSDictionary dictionaryWithObject:1 forKey:TAG_KEY];

Ответы [ 2 ]

5 голосов
/ 16 февраля 2011

Очевидно, что целые числа не являются объектами, но 0 в контексте указателя интерпретируется как nil / NULL.На самом деле, именно так определяется ноль.От objc.h:

#define Nil 0           /* id of Nil class */
#define nil 0           /* id of Nil instance */
0 голосов
/ 16 февраля 2011

Вы можете использовать класс NSNumber, если хотите, чтобы в словаре были целые числа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...