Это действительно странный вопрос, и мне интересно, нужно ли мне немного изменить свой стиль кодирования или если у меня глючит gdb.
Структура одного из моих методов выглядит следующим образом:
{
// code that checks if this method needs to do something
// ...
// further down, I instantiate e.g. foo as an NSArray
NSArray *foo = bar;
// ...
}
Если я отлаживаю приведенный выше код, я получаю NSDictionary
, называемый размерами.Поскольку я инстанцирую некоторые строки в методе foo, я получаю эти ошибки в консоли вплоть до создания foo:
-[__NSCFDictionary objectAtIndex:]: unrecognized selector sent to instance 0x541cb90
Причина, по которой это происходит, заключается в том, что и size, и foo указывают ната же память 0x541cb90 .Но так как я еще даже не СОЗДАЛ foo, я ничего не могу поделать.Ошибка появляется неоднократно, пока я не ступаю в точку foo = bar, где она перестает появляться.Причина, по которой он появляется, заключается в том, что я пытаюсь показать его значения в окне переменных отладки справа.
Это может быть связано с libXcodeDebuggerSupport.dylib отсутствует в SDK для разработки под iOS 4.2.1
Является ли просто плохой практикой объявлять переменные "на всем протяжении" такого метода?Было бы расточительно объявлять каждую переменную, которую я когда-либо намереваюсь использовать, внутри метода в самом верху, но, возможно, мне придется ...?