Ошибка обработки объекта в iPhone, выберите вкладку в UITabView и вылет - PullRequest
0 голосов
/ 23 февраля 2011

Привет всем, я создаю приложение для просмотра вкладок, и на одной вкладке у меня есть 7 текстовых полей, для которых я пытаюсь сохранить информацию с помощью кнопки «Сохранить». После установления связей между объектами в моем файле controller.h и фактическими текстовыми полями, когда я выбираю вкладку со всем этим материалом, приложение вылетает и переходит на трамплин. У меня есть отладка здесь:

2011-02-23 08:49:02.522 Tow Boat 911[19138:207] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x4e0d1d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key colour.'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x00ec6be9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x00cbb5c2 objc_exception_throw + 47
    2   CoreFoundation                      0x00ec6b21 -[NSException raise] + 17
    3   Foundation                          0x000286cf _NSSetUsingKeyValueSetter + 135
    4   Foundation                          0x0002863d -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285
    5   UIKit                               0x004a78d6 -[UIRuntimeOutletConnection connect] + 112
    6   CoreFoundation                      0x00e3d2cf -[NSArray makeObjectsPerformSelector:] + 239
    7   UIKit                               0x004a62ed -[UINib instantiateWithOwner:options:] + 1041
    8   UIKit                               0x004a8081 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
    9   UIKit                               0x00360a94 -[UIViewController _loadViewFromNibNamed:bundle:] + 70
    10  UIKit                               0x0035e709 -[UIViewController loadView] + 120
    11  UIKit                               0x0035e5e3 -[UIViewController view] + 56
    12  UIKit                               0x00371230 -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 120
    13  UIKit                               0x0036fd86 -[UITabBarController transitionFromViewController:toViewController:] + 64
    14  UIKit                               0x00371b7e -[UITabBarController _setSelectedViewController:] + 263
    15  UIKit                               0x003719ed -[UITabBarController _tabBarItemClicked:] + 352
    16  UIKit                               0x002b0a6e -[UIApplication sendAction:to:from:forEvent:] + 119
    17  UIKit                               0x004ae1f2 -[UITabBar _sendAction:withEvent:] + 422
    18  UIKit                               0x002b0a6e -[UIApplication sendAction:to:from:forEvent:] + 119
    19  UIKit                               0x0033f1b5 -[UIControl sendAction:to:forEvent:] + 67
    20  UIKit                               0x00341647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    21  UIKit                               0x0033f16c -[UIControl sendActionsForControlEvents:] + 49
    22  UIKit                               0x002b0a6e -[UIApplication sendAction:to:from:forEvent:] + 119
    23  UIKit                               0x0033f1b5 -[UIControl sendAction:to:forEvent:] + 67
    24  UIKit                               0x00341647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    25  UIKit                               0x003401f4 -[UIControl touchesEnded:withEvent:] + 458
    26  UIKit                               0x002d50d1 -[UIWindow _sendTouchesForEvent:] + 567
    27  UIKit                               0x002b637a -[UIApplication sendEvent:] + 447
    28  UIKit                               0x002bb732 _UIApplicationHandleEvent + 7576
    29  GraphicsServices                    0x016dda36 PurpleEventCallback + 1550
    30  CoreFoundation                      0x00ea8064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    31  CoreFoundation                      0x00e086f7 __CFRunLoopDoSource1 + 215
    32  CoreFoundation                      0x00e05983 __CFRunLoopRun + 979
    33  CoreFoundation                      0x00e05240 CFRunLoopRunSpecific + 208
    34  CoreFoundation                      0x00e05161 CFRunLoopRunInMode + 97
    35  GraphicsServices                    0x016dc268 GSEventRunModal + 217
    36  GraphicsServices                    0x016dc32d GSEventRun + 115
    37  UIKit                               0x002bf42e UIApplicationMain + 1160
    38  Tow Boat 911                        0x00001df8 main + 102
    39  Tow Boat 911                        0x00001d89 start + 53
)
terminate called after throwing an instance of 'NSException'
Program received signal:  “SIGABRT”.

Спасибо всем заранее за любую помощь!

1 Ответ

0 голосов
/ 25 мая 2011

Завершение работы приложения из-за необработанного исключения «NSUnknownKeyException», причина: «[setValue: forUndefinedKey:]: этот класс не соответствует значению ключа, соответствующему кодированию для цвета ключа.

В этом случае проверьте следующее:

  1. Убедитесь, что вы не ошиблись ключом, к которому пытаетесь получить доступ, т.е. цветом.

  2. Атрибут класса, к которому вы пытаетесь получить доступ, т.е. цвет должен соответствовать значению ключа. Вы можете объявить атрибут как свойство в заголовке и синтезировать его в файле реализации. Не изменяйте имя по умолчанию для метода получения и установки в объявлении свойства. Имя / подпись метода по умолчанию соответствует KVC. Документация Apple по KVC, включающая код метода доступа: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Overview.html

  3. Если вы используете базовые данные, убедитесь, что свойство, к которому осуществляется доступ, присутствует в соответствующем заголовочном файле и также имеет свой код в файле реализации. Может случиться, что вы добавили это свойство позже в модель и не обновили сгенерированный заголовок и файл реализации.

Наткнулся на этот пост без ответа, поэтому думал, что я бы поставил ответ, который может помочь кому-то еще.

...