NSMutableDictionary является нулевым после инициализации - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть метод, который создает новый NSMutableDictionary, устанавливает некоторые объекты и затем возвращает этот словарь с автоматическим выпуском, например, так:

NSMutableDictionary* parameters = [NSMutableDictionary new];

[parameters setObject:@"banana" forKey:@"fruit"];
[parameters setObject:@"potato" forKey:@"vegetable"];
[parameters setObject:@"water" forKey:@"drink"];

return [parameters autorelease];

Все работает, но когда я устанавливаю точку останова до того, как возвращаю указатель параметров, и хочу посмотреть, что внутри с gdb, используя print object, он показывает мне объекты. Но когда я хочу получить доступ к счетчику, он терпит неудачу и говорит мне, что он не указывает на действительный объект?

(gdb) po parameters
{
drink = water;
fruit = banana;
vegetable = potato;
}

(gdb) po [parameters count]
0x3 does not appear to point to a valid object.

Что происходит?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Вы используете po со счетчиком словаря в качестве аргумента.Таким образом, GDB фактически пытается напечатать объект, расположенный по адресу памяти 3 (счетчик).

С вашим словарем все в порядке.

Если вы хотите напечатать значение счетчика, используйте p вместо po.

1 голос
/ 29 ноября 2011

Просто введите p [parameters count].

po может использоваться только для объектов Objective-C (это означает p rint o bject). count - это целое число, которое не является объектом Objective-C.

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