EXC_BAD_ACCESS при простом запуске приложения для iPhone - PullRequest
2 голосов
/ 08 февраля 2010

Справочная информация:

Я пробую задание "HelloPoly" в курсе CS193P. Я создал свой файл .xib и пользовательский класс Controller.

Я не реализовал никаких методов - я только позволил IB записать файлы классов в xcode.

Проблема:

Каждый раз, когда я запускаю приложение, оно взрывается. Когда я запускаю GDB, я вижу, что это ошибка EXC_BAD_ACCESS. Это означает, что я обращаюсь к чему-то несуществующему в памяти, верно? Дело в том, что все, что у меня есть, это файлы по умолчанию, созданные IB и основные. Ничего больше.

Я проверил решения на основе размещенного кода, чтобы увидеть, в чем отличие, и я не уверен, что попробовать дальше. Что вы, ребята, обычно проверяете, когда ваше приложение каждый раз падает при запуске?

Трассировка стека показывает, что это происходит в main.m при создании UIApplicationMain, то есть я никогда не делаю это своему делегату приложения.

Вот след:

Program received signal:  “EXC_BAD_ACCESS”.
(gdb) where
#0  0x01b70d45 in CFHash ()
#1  0x01b741cf in __CFDictionaryFindBuckets1b ()
#2  0x01b72b0a in CFDictionaryGetValue ()
#3  0x00450535 in -[UIProxyObject initWithCoder:] ()
#4  0x0133886e in UINibDecoderDecodeObjectForValue ()
#5  0x013398c2 in -[UINibDecoder decodeObjectForKey:] ()
#6  0x00450b35 in -[UIRuntimeConnection initWithCoder:] ()
#7  0x0045101c in -[UIRuntimeEventConnection initWithCoder:] ()
#8  0x0133886e in UINibDecoderDecodeObjectForValue ()
#9  0x0133820a in UINibDecoderDecodeObjectForValue ()
#10 0x013398c2 in -[UINibDecoder decodeObjectForKey:] ()
#11 0x0044feab in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:] ()
#12 0x00451fcb in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:] ()
#13 0x002910a6 in -[UIApplication _loadMainNibFile] ()
#14 0x0029a82a in -[UIApplication _runWithURL:sourceBundleID:] ()
#15 0x00297b88 in -[UIApplication handleEvent:withNewEvent:] ()
#16 0x002936d3 in -[UIApplication sendEvent:] ()
#17 0x0029a0b5 in _UIApplicationHandleEvent ()
#18 0x0239eef1 in PurpleEventCallback ()
#19 0x01bb2b80 in CFRunLoopRunSpecific ()
#20 0x01bb1c48 in CFRunLoopRunInMode ()
#21 0x00291e69 in -[UIApplication _run] ()
#22 0x0029b003 in UIApplicationMain ()
#23 0x000026a8 in main (argc=1, argv=0xbffff000) at main.m:14

Я не видел этой конкретной проблемы в других темах, но, пожалуйста, подскажите мне, если я пропустил их.

Идеи

Спасибо.

Ответы [ 3 ]

3 голосов
/ 08 февраля 2010

В NibDecoder происходит сбой, т.е. при загрузке файлов XIB. Возможно, у вас есть ссылка на объект или свойство, которое не существует или не инициализировано.

0 голосов
/ 29 декабря 2010

Я только что решил это для аналогичного базового приложения для iPhone в учебнике для себя и понял, что просто поместил @ после «вместо впереди» - «Мяу» - это то, что напутало (ниже), и это было Достаточно скинуть ошибку:

animalSounds=[[NSArray alloc]initWithObjects: @"Oink","@Rawr",@"Ssss",@"Roof","@Meow",@"Honk",@"Squeak",nil];

Для отладки я использовал супер базовый метод установки точек останова и вывода NSLog, чтобы я мог выяснить, какая из 4 переменных, которые я использовал, была испорчена.

0 голосов
/ 08 февраля 2010

Проверьте имя файла .xib и имя метода initByNibName, если они совпадают. Вероятно, эти два имени разные.

...