Epi*_*yte 584 xcode interface-builder ios uistoryboard xcode6
我升级到Xcode 6 beta 4,现在我的应用程序不断崩溃
Interface Builder文件中的未知类X.
它崩溃了,因为据说Xcode找不到我在Storyboard中链接的自定义类,但它显示它们在Xcode界面中正确链接.
我很肯定一切都是正确的.我唯一的另一个选择可能是删除整个故事板文件并从头开始,因为它可能会以某种方式损坏.
编辑:我还想补充一点,我尝试清理,重置模拟器,弄乱构建阶段等.这些都不起作用.
Epi*_*yte 1427
当我输入问题时,我解决了这个问题.我想我会回答我的问题,并将其留给其他可能在使用Xcode 6 beta 4时遇到此问题的人.
要解决此问题,您需要在Storyboard中选择每个自定义类对象(这包括任何自定义视图,甚至是自定义视图控制器本身).
然后选择这些对象,打开身份检查器,在"自定义类"下,您应该看到"模块"选项.在"模块"文本框内单击,然后按Enter键.
而已!我的所有自定义对象的当前模块必须在Xcode 6 beta 4中以某种方式在内部错误设置.但是在检查器中没有这种可视指示.
请注意,如果在"模块"文本框内按Enter键不起作用,请尝试选择右侧的箭头并手动选择当前模块,然后清除文本框并按Enter键.您也可以尝试在类文本框中按Enter键(尽管这通常是为了解决另一个问题).
这是一个让事情变得更清晰的图像:
Chi*_*buZ 98
有时Xcode错过了 customModule="AppName" customModuleProvider="target"
要修复它,请打开storyboard作为源代码并替换此行:
<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
sceneMemberID="viewController">
Run Code Online (Sandbox Code Playgroud)
对此:
<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">
Run Code Online (Sandbox Code Playgroud)
小智 71
重命名swift类后我遇到了这个问题.使用@objc指令解决了这个问题:
@objc(ForumTopicListViewController) class ForumTopicListViewController
Run Code Online (Sandbox Code Playgroud)
jov*_*vic 46
这可能发生在6.0以上的任何Xcode中.在Swift项目中重命名一些ViewController类之后,它发生在我身上(但我想它也会发生在Obj-C上).您只需打开界面构建器,转到重命名了其类的ViewController的Identity Inspector,选择class并按Enter键.这会将重命名的类重新分配给选定的ViewController,并重置模块值,该值在重命名类后会丢失.
更新Xcode 8.1(也可能是8.0):
Xcode 8.1只是崩溃了.简单而烦人地只是崩溃而且不打印任何东西.我正在追逐那个幻影崩溃一小时才发现这是同样的事情 - 在IB中未分配的课程.如果您遇到一些幻像崩溃,请首先仔细检查IB是否有未分配的类.
Tam*_*ara 29
我的回答:将自定义模块设置为等于自定义Pod名称(在我的示例中 - 自定义类名称),如附带的屏幕截图所示
此解决方案适用于特定情况:适用于Pod(或Carthage)框架中的自定义视图类.
基础设施:XCode8,Swift3
Orl*_*iev 17
我通过与ChikabuZ建议完全相反的方式修复它(感谢指出它).在storyboard文件中,找到:
<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">
Run Code Online (Sandbox Code Playgroud)
并将其替换为:
<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" sceneMemberID="viewController">
Run Code Online (Sandbox Code Playgroud)
我无法相信我在Swift编译器和Xcode 6中错过了几个小时
Geo*_*dze 13
我在Xcode 8中遇到了这个问题,要解决它我必须在文本编辑器中修改storyboard.
通常,查找您的控件customModule
并customModuleProvider
从控件实体中删除.
给我一招.
我在Xcode 6.1面对这个问题时,我删除Main.storyboard
的LaunchScreen.xib
文件,默认ViewController
从我的项目中的类.
我通过删除Launch Screen File
和Main Interface
条目来修复它Info.plist
我有同样的问题.
就我而言,Xcode没有将我的自定义类添加到:Target> Build Phase> Compile Sources.
因此,我建议您验证您的CustomClass.m是否存在.
我希望这可以帮助你.
我为此搜索到处都是谷歌.直到我遇到一位要求我将项目文件夹移动到桌面的人才,这些答案都不适合我.它只是自动工作.显然,如果您将项目文件夹放在很多文件夹中,XCODE实际上会中断.
我通过在所有View控制器和视图的身份检查器的自定义类中键入模块名称(不幸的是,下拉列表将不显示任何内容......)来解决此问题.
您可能还需要指明目标提供商.要实现此目标,您可以在源代码模式下打开故事板,并在ViewController和View尖括号中添加"customModuleProvider"属性.
我的解决方案(Xcode 8.1 Swift 3.0):
Interface Builder文件中的未知类xxx.
打开StoryBoard作为源代码并搜索xxx.删除包含值xxx的属性.构建并运行.
归档时间: |
|
查看次数: |
197872 次 |
最近记录: |