Не соответствует кодировке значения ключа - PullRequest
1 голос
/ 14 июля 2011

Я пытаюсь подключить ViewController к вкладке в TabController. Я установил тип вкладки как NavigationController, а мой подкласс ViewController как идентификатор вкладки. Я также установил имя NIB для вкладки. Когда я использую любую из других вкладок с NavigationContollers, все работает, но одно конкретное представление выдает исключение: этот класс не соответствует значению ключа, кодирующему ключ txtPassword.

2011-07-14 17:11:10.784 myApp[5027:207] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x5a36500> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key txtPassword.'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x013305a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x01484313 objc_exception_throw + 44
    2   CoreFoundation                      0x013304e1 -[NSException raise] + 17
    3   Foundation                          0x00195677 _NSSetUsingKeyValueSetter + 135
    4   Foundation                          0x001955e5 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285
    5   UIKit                               0x0061930c -[UIRuntimeOutletConnection connect] + 112
    6   CoreFoundation                      0x012a68cf -[NSArray makeObjectsPerformSelector:] + 239
    7   UIKit                               0x00617d23 -[UINib instantiateWithOwner:options:] + 1041
    8   UIKit                               0x00619ab7 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
    9   UIKit                               0x004cf628 -[UIViewController _loadViewFromNibNamed:bundle:] + 70
    10  UIKit                               0x004cd134 -[UIViewController loadView] + 120
    11  UIKit                               0x004cd00e -[UIViewController view] + 56
    12  UIKit                               0x004cb482 -[UIViewController contentScrollView] + 42
    13  UIKit                               0x004dbf25 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 48
    14  UIKit                               0x004da555 -[UINavigationController _layoutViewController:] + 43
    15  UIKit                               0x004db870 -[UINavigationController _startTransition:fromViewController:toViewController:] + 524
    16  UIKit                               0x004d632a -[UINavigationController _startDeferredTransitionIfNeeded] + 266
    17  UIKit                               0x005f12e9 -[UILayoutContainerView layoutSubviews] + 226
    18  QuartzCore                          0x00f5aa5a -[CALayer layoutSublayers] + 181
    19  QuartzCore                          0x00f5cddc CALayerLayoutIfNeeded + 220
    20  QuartzCore                          0x00f020b4 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310
    21  QuartzCore                          0x00f03294 _ZN2CA11Transaction6commitEv + 292
    22  QuartzCore                          0x00f0346d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99
    23  CoreFoundation                      0x0131189b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
    24  CoreFoundation                      0x012a66e7 __CFRunLoopDoObservers + 295
    25  CoreFoundation                      0x0126f1d7 __CFRunLoopRun + 1575
    26  CoreFoundation                      0x0126e840 CFRunLoopRunSpecific + 208
    27  CoreFoundation                      0x0126e761 CFRunLoopRunInMode + 97
    28  GraphicsServices                    0x01acd1c4 GSEventRunModal + 217
    29  GraphicsServices                    0x01acd289 GSEventRun + 115
    30  UIKit                               0x0042bc93 UIApplicationMain + 1160
    31  myApp                           0x00001f44 main + 102
    32  myApp                           0x00001ed5 start + 53
)
terminate called after throwing an instance of 'NSException'

Свойство объявлено как в интерфейсе для ViewController (подкласс UINavigationViewController и представлено как свойство. Оно также синтезируется и подключается в IB, как и остальные элементы управления, но по какой-то причине вызывает это исключение.

Есть ли способ отследить причину?

Ответы [ 2 ]

8 голосов
/ 14 июля 2011

Ваш .xib, вероятно, ссылается на свойство txtPassword в представлении, которое не определено - например, @synthesize отсутствует.

3 голосов
/ 18 июля 2011

Оказалось, что у меня в UITabController для идентификатора класса Tab задан экземпляр подкласса UINavigationController, а для типа вкладки был задан контроллер навигации. Мне нужно было установить идентификатор класса UIView внутри вкладки, а не самой вкладки.

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