Причудливая ошибка кодирования значения ключа для базового UILabel - PullRequest
2 голосов
/ 26 июля 2011

Это новый.Я проверяю, что мои различные контроллеры представления загружаются моей панелью вкладок, поэтому я помещаю это на одну из них:

- (void)viewDidLoad
{
[super viewDidLoad];
UILabel*yo=[[UILabel alloc] init];
self.testlabel=yo;
self.testlabel.text=[NSString stringWithFormat:@"sup"];

[yo release];

Вот что я получаю, когда нажимаю кнопку вкладки для этого контроллера:

2011-07-26 14: 05: 37.773 Средства выбора [802: 707] Завершение работы приложения из-за необработанного исключения «NSUnknownKeyException», причина: «[setValue: forUndefinedKey:]:этот класс не соответствует кодировке значения ключа для ключевой метки. '*

Что в мире ?!Я должен делать что-то исключительно простое и неправильное.Может кто-нибудь заметить это?

У меня есть это в .h и .m:

@interface SingleVC : UIViewController

@property (nonatomic, retain) IBOutlet UILabel*testlabel;

@end

и

@implementation SingleVC

@synthesize testlabel;

Я получаю следующие ошибки стека (который я не умею читать):

*** Call stack at first throw:
(
    0   CoreFoundation                      0x00dc25a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x00f16313 objc_exception_throw + 44
    2   CoreFoundation                      0x00dc24e1 -[NSException raise] + 17
    3   Foundation                          0x00794677 _NSSetUsingKeyValueSetter + 135
    4   Foundation                          0x007945e5 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285
    5   UIKit                               0x0021030c -[UIRuntimeOutletConnection connect] + 112
    6   CoreFoundation                      0x00d388cf -[NSArray makeObjectsPerformSelector:] + 239
    7   UIKit                               0x0020ed23 -[UINib instantiateWithOwner:options:] + 1041
    8   UIKit                               0x00210ab7 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
    9   UIKit                               0x000c6628 -[UIViewController _loadViewFromNibNamed:bundle:] + 70
    10  UIKit                               0x000c4134 -[UIViewController loadView] + 120
    11  UIKit                               0x000c400e -[UIViewController view] + 56
    12  UIKit                               0x000d6f54 -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 120
    13  UIKit                               0x000d5aaa -[UITabBarController transitionFromViewController:toViewController:] + 64
    14  UIKit                               0x000d78a2 -[UITabBarController _setSelectedViewController:] + 263
    15  UIKit                               0x000d7711 -[UITabBarController _tabBarItemClicked:] + 352
    16  UIKit                               0x000144fd -[UIApplication sendAction:to:from:forEvent:] + 119
    17  UIKit                               0x00216ce6 -[UITabBar _sendAction:withEvent:] + 422
    18  UIKit                               0x000144fd -[UIApplication sendAction:to:from:forEvent:] + 119
    19  UIKit                               0x000a4799 -[UIControl sendAction:to:forEvent:] + 67
    20  UIKit                               0x000a6c2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    21  UIKit                               0x000a4750 -[UIControl sendActionsForControlEvents:] + 49
    22  UIKit                               0x000144fd -[UIApplication sendAction:to:from:forEvent:] + 119
    23  UIKit                               0x000a4799 -[UIControl sendAction:to:forEvent:] + 67
    24  UIKit                               0x000a6c2b -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    25  UIKit                               0x000a57d8 -[UIControl touchesEnded:withEvent:] + 458
    26  UIKit                               0x00038ded -[UIWindow _sendTouchesForEvent:] + 567
    27  UIKit                               0x00019c37 -[UIApplication sendEvent:] + 447
    28  UIKit                               0x0001ef2e _UIApplicationHandleEvent + 7576
    29  GraphicsServices                    0x00ffb992 PurpleEventCallback + 1550
    30  CoreFoundation                      0x00da3944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    31  CoreFoundation                      0x00d03cf7 __CFRunLoopDoSource1 + 215
    32  CoreFoundation                      0x00d00f83 __CFRunLoopRun + 979
    33  CoreFoundation                      0x00d00840 CFRunLoopRunSpecific + 208
    34  CoreFoundation                      0x00d00761 CFRunLoopRunInMode + 97
    35  GraphicsServices                    0x00ffa1c4 GSEventRunModal + 217
    36  GraphicsServices                    0x00ffa289 GSEventRun + 115
    37  UIKit                               0x00022c93 UIApplicationMain + 1160
    38  Pickers                             0x000025c9 main + 121
    39  Pickers                             0x00002545 start + 53
)
terminate called throwing an exceptionCurrent language:  auto; currently objective-c
kill
quit

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Итак, после некоторого поиска в Google на других сайтах оказывается, что довольно много людей сталкивались с такой же и основной проблемой.Я нашел решение здесь:

https://discussions.apple.com/thread/1598422?threadID=1598422

Я проверял свои классы в отдельных кончиках каждого контроллера, но вы также должны установить классы в контроллере вкладок, для каждогоitem (я уже установил имя пера для каждого элемента панели вкладок, но не для класса).

Итак, проблема решена и, как и ожидалось, была довольно простой.

Это глупо, почемуошибка была создана для кодирования значения ключа.

0 голосов
/ 26 июля 2011

возможно соединение в IB от какого-либо объекта, который ранее имел IBOutlet, называемый testlabel?

остановите отладчик в исключениях ObjC и опубликуйте трассировку стека, если это не очевидно

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