iOS5 и XCode4 Ошибка - Завершение приложения из-за необработанного исключения «NSUnknownKeyException» - PullRequest
1 голос
/ 13 ноября 2011

Я недавно обновил Xcode для использования iOS5 SDK. Поскольку обновление моего приложения происходит сбой на экране запуска. Ранее приложение работало как на 4.3, так и на iPhone (до iOS5). Ошибка указывает на: int retVal = UIApplicationMain(argc, argv, nil, nil); На основной. М

Консоль возвращает следующее:

GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Mon Aug  8 20:32:45 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".Attaching to process 3903.
2011-11-13 22:11:05.421 BlastCalc[3903:10d03] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x5c1b600> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key averageChargeLengthLabel.'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00e7b5a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x00fcf313 objc_exception_throw + 44
    2   CoreFoundation                      0x00e7b4e1 -[NSException raise] + 17
    3   Foundation                          0x0084d677 _NSSetUsingKeyValueSetter + 135
    4   Foundation                          0x0084d5e5 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285
    5   UIKit                               0x002c930c -[UIRuntimeOutletConnection connect] + 112
    6   CoreFoundation                      0x00df18cf -[NSArray makeObjectsPerformSelector:] + 239
    7   UIKit                               0x002c7d23 -[UINib instantiateWithOwner:options:] + 1041
    8   UIKit                               0x002c9ab7 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
    9   UIKit                               0x000cf17a -[UIApplication _loadMainNibFile] + 172
    10  UIKit                               0x000cfcf4 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 291
    11  UIKit                               0x000da617 -[UIApplication handleEvent:withNewEvent:] + 1533
    12  UIKit                               0x000d2abf -[UIApplication sendEvent:] + 71
    13  UIKit                               0x000d7f2e _UIApplicationHandleEvent + 7576
    14  GraphicsServices                    0x0132f992 PurpleEventCallback + 1550
    15  CoreFoundation                      0x00e5c944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    16  CoreFoundation                      0x00dbccf7 __CFRunLoopDoSource1 + 215
    17  CoreFoundation                      0x00db9f83 __CFRunLoopRun + 979
    18  CoreFoundation                      0x00db9840 CFRunLoopRunSpecific + 208
    19  CoreFoundation                      0x00db9761 CFRunLoopRunInMode + 97
    20  UIKit                               0x000cf7d2 -[UIApplication _run] + 623
    21  UIKit                               0x000dbc93 UIApplicationMain + 1160
    22  BlastCalc                           0x00002979 main + 121
    23  BlastCalc                           0x000028f5 start + 53
    24  ???                                 0x00000001 0x0 + 1
)
terminate called throwing an exceptionsharedlibrary apply-load-rules all
(gdb)

Я читал много исправлений, относящихся к этому, в более старых версиях Xcode и SDK, однако мне не удалось найти исправление для моей проблемы. Я не очень опытный в iOS, и изменение в 5 бросило меня.

Если кто-нибудь может указать мне направление ответа, который был бы признателен. Спасибо всем заранее.

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

Ответы [ 2 ]

1 голос
/ 05 апреля 2012

Я получил ту же ошибку, и я исправил ее, воссоздав предыдущее соединение.Фон это: я создаю (iphone) приложение с одним видом и добавляю вид карты для просмотра контроллера.Я просто запустил приложение, я получил ошибку.Пытаясь это исправить, я перетащил вид карты в контроллер представления для создания точек.Между тем это не решило, я удалил розетки и весь созданный код.После обхода этой ошибки, я получил это.Как я уже сказал, я исправил это, воссоздав розетки вида карты.

Теперь, это не хороший способ функционировать.Похоже, он хранит некоторый кеш.Было бы хорошо узнать, как сбросить / очистить эту ситуацию.

Надеюсь, это поможет.Спасибо!

0 голосов
/ 22 января 2012

Я просто столкнулся с этой же проблемой. Я наконец-то обошел это, сделав это:

  1. Для ярлыка averageChargeLength используйте конструктор интерфейса Xcode (либо путем выбора раскадровки или XIB) и откройте панель соединений. С раскадровкой вы можете просто щелкнуть на нем, чтобы открыть панель соединений.
  2. Удалить все розетки соединения там, наведя на связь и нажав крошечный x.
  3. Попробуйте снова запустить приложение в симуляторе. Для меня это разрешил запуск моего приложения без исключения, но ярлык не обновить больше.
  4. Если это работает, вернитесь в конструктор интерфейса Xcode и попробуйте заново создать соединение, которое вы хотели создать, перетащив соединение обратно в файл ViewController.h. Не забудьте проверить эквивалентный файл .m для дублированного кода из соединения вставьте и удалите его.
  5. Попробуйте снова запустить приложение. Для меня вместо из-за неудачи, как и раньше, он действительно работал.

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

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