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: '[<UIViewController 0x7aecbd00> 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
来存储你的数据,你应该明白NSKeyedArchiver
和NSKeyedUnarchiver
类似于Zip
来压缩数据。编译器将Archive
您的数据在存储数据的处理和Unarchive
数据在读取数据的处理。
【讨论】:
以上是关于Interface Builder文件中的Xcode 6未知类的主要内容,如果未能解决你的问题,请参考以下文章
Interface Builder文件中的Xcode 6未知类
Interface Builder 文件中的未知类 FBSDKLoginButton
Interface Builder 文件中的未知类 PFImageView
Interface Builder 文件中的未知类 FirstViewController