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:24

This is how I solved this problem. I went into my 'Story Board' file and selected the view that was causing the problems. I then clicked on the Connections Inspector tab and you will see connection(s) with exclamation points to the right instead of solid circles. Remove these and make adjustments if necessary. Save>Run your app and should work. Hope this helps :)

查看更多
趁早两清
3楼-- · 2020-02-28 05:26

It seems that your Interface Builder did not work properly. As suggested before, try by cleaning and rebuild. If it doesn´t work, I´d suggest you to re-create your xib interface. It worked for me in a similar occasion.

查看更多
男人必须洒脱
4楼-- · 2020-02-28 05:27

something went wrong when in xcode 4 with some reference , cause i declared IBOutlet that reference authView then run and it worked!, then i removed the IBOutlet declaration and worked well

查看更多
够拽才男人
5楼-- · 2020-02-28 05:28

@Dave DeLong pointed out right.

Workaround

  • Find when the exception thrown, which viewController is being loaded.
  • Then check the nib file of the viewController, there must be an IBOutlet attached in xib but might be missed in the viewController.h file or might be some control which was attached is missing in xib file.

Why running in Simulator? Sometimes it ends in messing up.

Just do the steps

  1. Build -> Clean
  2. Build -> Clean All Targets

Now it runs the real code, may be issue got resolve on device also or may be it start throwing exception on simulator also in case if there is really an issue. (I already have mentioned workaround)

查看更多
Viruses.
6楼-- · 2020-02-28 05:31

In my case it was even more spooky. I had a XIB associated to the VC that I had removed completely as went for code-only. Run on Simulator nicely but would crash on Device systematically.

So I clean, rebuild, closed XCode, went for a snack and shout at the mac. Nothing, the compiler kept pointing to an inexistent button on an inexistent XIB.

Tried by changing the name of the class and that worked!

查看更多
做个烂人
7楼-- · 2020-02-28 05:34

You've probably got your File's Owner stuff messed up in your xibs. This exception is getting thrown during nib unarchiving (as evidenced by +[UINib...] in the backtrace). It's attempting to hook up your IBOutlets that you defined.

One of your views is set up to be the authView of the the File's Owner. However, when it's time to unarchive the nib, the owner doesn't have an authView property, so the unarchiving is failing.

查看更多
登录 后发表回答