Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 接口生成器中的未知类+;NSUnknownKeyException_Ios_Swift_Xcode_Storyboard_Today Extension - Fatal编程技术网

Ios 接口生成器中的未知类+;NSUnknownKeyException

Ios 接口生成器中的未知类+;NSUnknownKeyException,ios,swift,xcode,storyboard,today-extension,Ios,Swift,Xcode,Storyboard,Today Extension,我正在构建一个today扩展,它在iOS13+上运行良好,但不知何故,它不适用于下面的版本 在其他版本上,我得到以下错误: 2019-12-20 08:45:41.741 MyWidget[4730:53043] Unknown class _TtC14MyWidget19TodayViewController in Interface Builder file. 2019-12-20 08:45:41.850 MyWidget[4730:53043] *** Terminating app

我正在构建一个today扩展,它在iOS13+上运行良好,但不知何故,它不适用于下面的版本

在其他版本上,我得到以下错误:

2019-12-20 08:45:41.741 MyWidget[4730:53043] Unknown class _TtC14MyWidget19TodayViewController in Interface Builder file.

2019-12-20 08:45:41.850 MyWidget[4730:53043] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x7ffe59401f10> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key loginViewNew.'
2019-12-20 08:45:41.741 MyWidget[4730:53043]未知类\u TtC14MyWidget19TodayViewController在Interface Builder文件中。
2019-12-20 08:45:41.850 MyWidget[4730:53043]***由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合密钥登录视图的键值编码。”
起初我认为这是由它引起的,因为在Interface Builder下的属性中,Document builds for被设置为iOS13及更高版本,所以我在故事板和所有其他.xib文件中更改了此设置,但这并没有解决问题,我仍然收到相同的错误

我还检查了我的插座,那里也没有错误,故事板可以找到我的
TodayViewController
类,因此我不知道问题出在哪里

它不仅出现在键
loginView
上,如果我删除了该插座,错误会提到下一个视图,依此类推


有人对解决这个问题有什么建议吗?

有些情况下,在Xcode 11之后,在Interface Builder文件中生成一个目标低于iOS 13的
未知类。其主要原因与xcframes有关,这是意料之中的,因为在构建分发框架时,需要对Objective-C运行时进行更改,这些更改仅在iOS 13及更高版本中可用。下面的示例介绍如何复制未知类

  • 由框架导出并用作类的属性的公共枚举:
//框架上导出的SampleEnum
公共枚举SampleEnum:字符串{
案例A=“A”
案例B=“B”
}
//当前目标上的SampleViewController
公共类SampleViewController:UIViewController{
私有变量sampleEnum:sampleEnum=.A
}
//在Interface Builder文件中导致未知类_TtC6Sample20SampleViewController。
  • 继承的继承方式如下:
//在framework上导出的基本BaseViewControoler
公共类BaseViewController:UIViewController{
}
//当前项目上的ScreenAViewController
公共类ScreenAViewController:BaseViewController{
}
//在Interface Builder文件中导致未知类_TtC6Sample21ScreenAViewController。
  • 界面生成器上的小问题显示“识别检查器”部分自定义类字段:
阶级

模块


从目标继承模块

清除派生数据,清理生成,重新启动xcode,然后重试…请检查
IBOutlet
连接。是否与黄色感叹号有任何连接?请检查InterfaceBuilder中的ViewController
MyWidgetTodayViewController
模块?或者检查该类是否正确地位于您的小部件中target@Larme谢谢,该模块是从目标继承的,出于某种原因导致了错误。我取消选中该框以继承并将模块留空,这解决了我的问题