Interface Builder文件中的Xcode 6未知类

Posted

技术标签:

【中文标题】Interface Builder文件中的Xcode 6未知类【英文标题】:Xcode 6 Unknown class in Interface Builder file 【发布时间】:2015-04-20 13:33:45 【问题描述】:

当按钮链接到视图控制器时出现错误。我急于解决这个问题。我对 Xcode 也很陌生。

我试过了,但都没有奏效:

Interface Builder 文件中的未知类 Xcode 错误 Xcode 6 奇怪的错误:Interference Builder 文件中的未知类 Interface Builder 文件中的 XCode 未知类 *****

错误是:

2015-04-19 15:17:32.565 *****[*******] Unknown class ******* in Interface Builder file.
2015-04-19 15:17:32.671 *****[********] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x7aecbd00> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key ********.'
*** First throw call stack:
(
0   CoreFoundation                      0x01ff7466 __exceptionPreprocess + 182
1   libobjc.A.dylib                     0x01c80a97 objc_exception_throw + 44
2   CoreFoundation                      0x01ff7081 -[NSException raise] + 17
3   Foundation                          0x0190380e -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282
4   Foundation                          0x0185f838 _NSSetUsingKeyValueSetter + 115
5   Foundation                          0x0185f7bd -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267
6   Foundation                          0x018950a6 -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 386
7   UIKit                               0x0097e329 -[UIRuntimeOutletConnection connect] + 106
8   libobjc.A.dylib                     0x01c96724 -[NSObject performSelector:] + 62
9   CoreFoundation                      0x01f30dbc -[NSArray makeObjectsPerformSelector:] + 316
10  UIKit                               0x0097cdea -[UINib instantiateWithOwner:options:] + 1775
11  UIKit                               0x0079e2a4 -[UIViewController _loadViewFromNibNamed:bundle:] + 270
12  UIKit                               0x0079ea3b -[UIViewController loadView] + 295
13  UIKit                               0x0079ec6f -[UIViewController loadViewIfRequired] + 78
14  UIKit                               0x0079f215 -[UIViewController view] + 35
15  UIKit                               0x00e14ca7 -[_UIFullscreenPresentationController _setPresentedViewController:] + 75
16  UIKit                               0x00774551 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 113
17  UIKit                               0x007ac6e1 -[UIViewController _presentViewController:withAnimationController:completion:] + 2102
18  UIKit                               0x007af252 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 345
19  UIKit                               0x007af0a4 -[UIViewController presentViewController:animated:completion:] + 224
20  UIKit                               0x007af56a -[UIViewController presentModalViewController:animated:] + 57
21  UIKit                               0x00c786cd -[UIStoryboardModalSegue perform] + 271
22  UIKit                               0x00c65d89 -[UIStoryboardSegueTemplate _perform:] + 217
23  UIKit                               0x00c65e05 -[UIStoryboardSegueTemplate perform:] + 116
24  libobjc.A.dylib                     0x01c967cd -[NSObject performSelector:withObject:withObject:] + 84
25  UIKit                               0x00648340 -[UIApplication sendAction:to:from:forEvent:] + 99
26  UIKit                               0x006482d2 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
27  UIKit                               0x0077ca56 -[UIControl sendAction:to:forEvent:] + 69
28  UIKit                               0x0077ce73 -[UIControl _sendActionsForEvents:withEvent:] + 598
29  UIKit                               0x0077c0dd -[UIControl touchesEnded:withEvent:] + 660
30  UIKit                               0x00698ffa -[UIWindow _sendTouchesForEvent:] + 874
31  UIKit                               0x00699ad5 -[UIWindow sendEvent:] + 791
32  UIKit                               0x0065ebb1 -[UIApplication sendEvent:] + 242
33  UIKit                               0x0066ebf6 _UIApplicationHandleEventFromQueueEvent + 21066
34  UIKit                               0x00642bc7 _UIApplicationHandleEventQueue + 2300
35  CoreFoundation                      0x01f1a98f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
36  CoreFoundation                      0x01f1049d __CFRunLoopDoSources0 + 253
37  CoreFoundation                      0x01f0f9f8 __CFRunLoopRun + 952
38  CoreFoundation                      0x01f0f37b CFRunLoopRunSpecific + 443
39  CoreFoundation                      0x01f0f1ab CFRunLoopRunInMode + 123
40  GraphicsServices                    0x039022c1 GSEventRunModal + 192
41  GraphicsServices                    0x039020fe GSEventRun + 104
42  UIKit                               0x006469b6 UIApplicationMain + 1526
43  Goals                               0x0006d0bd main + 141
44  libdyld.dylib                       0x0450bac9 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

【问题讨论】:

您是否验证了链接到按钮的视图控制器在身份检查器中具有正确的类? 我遵循了一个答案,说只需键入名为的类,因为该类不会出现在身份检查器中 您确定输入正确吗? 我 100% 确定,但我认为您可能正在做某事 班级可能有问题或什么的 【参考方案1】:

这是因为当您更改 .h/.m 中的 IBOutlet 属性名称时,您已经连接到 nib 中的文件所有者。

从你的笔尖:

在 IB 中选择对象并转到“连接检查器”。 在“引用插座”下,确保您的对象尚未连接到旧属性名称...如果是,请单击小“x”以删除引用并重新构建。

【讨论】:

【参考方案2】:

1.Unknown class in Interface Builder file Xcode error 表示与unknown Class 链接的StoryBoard 中的ViewController 之一。请仔细检查。

2.阅读您的错误报告后,reason: '[&lt;UIViewController 0x7aecbd00&gt; setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key。但缺乏具体代码,我只能向您推荐一些“解决方案”。

我将编写一个 storeData 函数作为示例。 objectA 是您的 DataObject 类的实例变量。

func storeData()  
let defaults = NSUserDefaults.standardUserDefaults()
var data = NSKeyedArchiver.archivedDataWithRootObject(objectA) 
defaults.setValue(data, forUndefinedKey: "DataBase") // The error occur in there
 

看到data,就是objectA的压缩。而objectA继承自this class is not key value coding-compliant for the key中提到的Class

forUndefinedKey 是一种标记或名称,可引导编译器找到正确的数据。

解决方案:我猜是数据的I/O过程中发生了错误。因此,请检查您的每个 I/O 函数和块,以验证该参数 data 的解压缩是否继承自同一个类。

PS:如果你要使用NSUserDefaults 来存储你的数据,你应该明白NSKeyedArchiverNSKeyedUnarchiver 类似于Zip 来压缩数据。编译器将Archive您的数据在存储数据的处理和Unarchive数据在读取数据的处理。

【讨论】:

以上是关于Interface Builder文件中的Xcode 6未知类的主要内容,如果未能解决你的问题,请参考以下文章

Interface Builder文件中的Xcode 6未知类

Interface Builder 文件中的未知类 FBSDKLoginButton

Interface Builder 文件中的未知类 PFImageView

Interface Builder 文件中的未知类 FirstViewController

解析错误:Interface Builder 文件中的未知类 PFImageView

Interface Builder 文件 Swift/Parse 错误中的未知类 PFQueryTableView