this class is not key value coding-compliant for t

2020-02-28 05:11发布

When i run my app on simulator it runs well, when i try with device doesn't work and i get these errors:

NOTE: i didn't find any kind of class authView in my code

2011-02-24 12:04:14.472 TestP[473:307] *** Terminating app due to uncaught exception     'NSUnknownKeyException', reason: '[<TestP 0x19d2b0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key authView.'
*** Call stack at first throw:
(
0   CoreFoundation                      0x33ac0987 __exceptionPreprocess + 114
1   libobjc.A.dylib                     0x3347b49d objc_exception_throw + 24
2   CoreFoundation                      0x33ac0705 -[NSException dealloc] + 0
3   Foundation                          0x3367db4f -[NSObject(NSKeyValueCoding)    setValue:forUndefinedKey:] + 182
4   Foundation                          0x3367d03b _NSSetUsingKeyValueSetter + 90
5   Foundation                          0x3367eda3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 194
6   Foundation                          0x33630b17 -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 130
7   UIKit                               0x3224c60f -[UIRuntimeOutletConnection connect] + 66
8   CoreFoundation                      0x33a63fc7 -[NSObject(NSObject) performSelector:] + 18
9   CoreFoundation                      0x33a6cd51 -[NSArray makeObjectsPerformSelector:] + 388
10  UIKit                               0x3224b577 -[UINib instantiateWithOwner:options:] + 586
11  UIKit                               0x3224cb39 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 92
12  UIKit                               0x3209e871 -[UIApplication _loadMainNibFile] + 96
13  UIKit                               0x3209a1fd -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 180
14  UIKit                               0x3206648b -[UIApplication handleEvent:withNewEvent:] + 1114
15  UIKit                               0x32065ec9 -[UIApplication sendEvent:] + 44
16  UIKit                               0x32065907 _UIApplicationHandleEvent + 5090
17  GraphicsServices                    0x33b0ef03 PurpleEventCallback + 666
18  CoreFoundation                      0x33a556ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26
19  CoreFoundation                      0x33a556c3 __CFRunLoopDoSource1 + 166
20  CoreFoundation                      0x33a47f7d __CFRunLoopRun + 520
21  CoreFoundation                      0x33a47c87 CFRunLoopRunSpecific + 230
22  CoreFoundation                      0x33a47b8f CFRunLoopRunInMode + 58
23  UIKit                               0x32099309 -[UIApplication _run] + 380
24  UIKit                               0x32096e93 UIApplicationMain + 670
25  TestP                               0x00002213 main + 98
26  TestP                               0x000021ac start + 40
)
terminate called after throwing an instance of 'NSException'

10条回答
我只想做你的唯一
2楼-- · 2020-02-28 05:36

I think that one possible cause for raising that exception is when you have changed the name of some IBOutlet variable after the storyboard connections are already done. Thus the UI element in the storyboard is still referencing to the old variable name. I solved this for me by checking the XML representation of the storyboard (Right click on your .storyboard file and open it as Source Code) and deleting the old (unneeded) IBOutlet variable name.

For example let say you have one UITextField on the storyboard and have the corresponding property for it:

@property (retain, nonatomic) IBOutlet UItextField *myTextField;

You connect the UI element in the storyboard to that property and then you decide to rename somehow the variable. Now if you right click on your UITextField in the storyboard, you will notice that there exists two referencing outlets - the old one and the new one. You can delete the old one by clicking 'x' sign in the Connections Inspector or by editing the XML variant of the storyboard file.

查看更多
We Are One
3楼-- · 2020-02-28 05:37

i have found these errors arise mostly when you connect properties, edit them, and connect them again.. analyse your connection inspector for unexpected values, that remain from your previously created and destroyed connection.

查看更多
姐就是有狂的资本
4楼-- · 2020-02-28 05:38

I just cleaned the project and deleted the app from the device and it worked again. Error was referencing a view that i had already removed.

查看更多
Lonely孤独者°
5楼-- · 2020-02-28 05:41

You have probably created an IBOutlet, then deleted it, then linked a new one, but in the xib 'Inspector' you forgot to delete the link and now have a duplicate IBOutlet ref that the compiler cannot find.

查看更多
登录 后发表回答