Xcode 9 Storyboard:发生内部错误。编辑功能可能有限

时间:2017-10-05 11:58:13

标签: ios storyboard xcode9

当我在Xcode 9中打开我的项目时,在Storyboard和Launchscreen上面出现错误。

注意:清理派生数据对我没有帮助。

请查看截图。

enter image description here

27 个答案:

答案 0 :(得分:12)

您可以在问题报告中找到问题,只需报告错误并打开log.txt文件即可找到问题。在我的情况下,我设置无效的表行高度。

enter image description here

enter image description here

答案 1 :(得分:3)

当代码中的编译器错误导致编辑器无法弄清楚或处理时,通常会发生这种情况。所以它崩溃了。不幸的是,解决这个问题的唯一方法就是找出一段代码并修复它。

当Swift无法找出我的一个变量的类型时,我有了这个。

This answer也值得一试。

答案 2 :(得分:3)

通过命令或首选项以两种方式删除派生数据。

rm -rf ~/Library/Developer/Xcode/DerivedData/

Xcode -> Preferences -> Location -> Derived Data

screenshot 1

在Xcode菜单中,转到产品清除项目。

screenshot 2

断开连接的设备并重新启动Xcode和系统。

screenshot 3

更多:https://www.e-learn.cn/content/wangluowenzhang/266937

答案 3 :(得分:3)

经过一番尝试,我能够在这里修复它。 Xcode-select指向错误版本的Xcode(此处指向Xcode 8.3.3)。

要检查,请使用

xcode-select -p

要更改,请使用

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

当使用Xcode 9实例而xcode-select指向Xcode 8版本时,似乎会出现问题。 如果您需要再次使用Xcode 8.x,请不要忘记切换回来。

答案 4 :(得分:3)

当我遇到这种情况时,我的配置就像,

操作系统:macOS Sierra版本10.12.6 Xcode:9.0

我创建了新项目并打开了故事板,这个错误就在那里。

解决方案:我刚退出xcode并重新开始,错误不是那样。

所以,只需要重新启动xcode!

答案 5 :(得分:2)

当您打开2个不同版本的Xcode时,通常会发生此错误。 解决方案:请关闭Xcode并清除驱动数据。现在再次尝试,一次使用一个Xcode

答案 6 :(得分:2)

只需退出(如果需要,可以强制退出)Xcode,然后重新开始。

答案 7 :(得分:1)

我也遇到过这个问题。  解决方法很简单,只需删除xcode的派生数据并重启xcode即可。

答案 8 :(得分:1)

我刚刚通过以下步骤解决了 xcode 9.3.1 上出现的相同错误,

  1. 清理项目
  2. 退出xocde
  3. 从项目文件夹中删除了BUILD文件夹
  4. 再次打开

答案 9 :(得分:1)

对我来说,只需退出Xcode并再次打开即可解决此问题

Xcode 9.4.1
MacOS High Seirra 10.13.4

答案 10 :(得分:1)

检查图像浓度。更改为72dpi或更高。

答案 11 :(得分:0)

我遇到了同样的问题。非常老的项目和 UI 生成器只显示框并给出比例必须 > 0 错误。用户界面中有一些低于 72 dpi 的旧图形。删除了那些/用 72 dpi 或更高的分辨率替换它们,瞧。立即一切正常。通常是否删除派生数据并重新启动和,但这是治愈方法。

-> 检查小于 72 dpi 的图像并修复它们。

答案 12 :(得分:0)

enter image description here

相同的问题,Xcode版本12.0(12A7209)。从Xcode 9到12的Apple都没有解决Storyboard的一个问题。

解决方案:只需重新打开您的项目即可。

答案 13 :(得分:0)

我今天在故事板上遇到了同样的问题和错误。我的一个控制员只显示了黑色背景和蓝色轮廓。

我将其修复如下

  1. 创建一个新的控制器
  2. 将视图从旧的(功能失调的)控制器复制到新的控制器
  3. 将视图连接到.swift文件中的相应出口。 (当我将视图从旧的复制到新的控制器时,约束没有丢失)

答案 14 :(得分:0)

我在使用 Xcode 12.2 时遇到了这个问题

将 UITabBarController 添加到我的故事板一段时间后,我开始收到此错误。检查 Xcode 提供的日志,我发现它与标签栏控制器有关,特别是因为它不支持作为拆分视图控制器的详细视图。奇怪,因为我没有使用拆分视图控制器。

=================================
    ASSERTION:
=================================

Failed to update scene 'ihF-5r-7AU, uvd-WH-zGG, Tgo-fH-4sa, ExD-dD-O6v, BUC-1K-8XU, and SVS-tP-wFU' with IBLayoutConstraint (x120), IBUIViewAutolayoutGuide (x6), UIButton (x3), UIImageView (x2), UILabel (x14), UINavigationItem (x5), UITabBarItem (x2), UITableView (x3), UITableViewCell (x2), UITableViewCellContentView (x2), UIView (x15), and UIViewController (x6).

Exception name: NSInvalidArgumentException
Exception reason: UITabBarController is unsupported as viewController for -[UISplitViewController setViewController:forColumn:] in Primary column

最后,正如有人指出的那样,我检查了故事板源代码并找到了几个 splitViewMasterSizeMetrics 标签,我的标签栏控制器中的每个标签一个标签。我删除了这些标签并像魅力一样工作。我什至不知道拆分视图引用是如何添加的,因为我从未在我的项目中使用过它

所以我的看法是:

  1. 检查您的日志
  2. 如果您仍然无法找出问题所在,请在故事板源代码中搜索与错误相关的任何事件

答案 15 :(得分:0)

对于所有其他遇到此问题并且没有运气删除派生数据的用户,当您尝试在元素和父视图之间添加长宽比时,似乎存在一个错误。因此,当您添加长宽比约束,然后在将检查器中的第二个元素更改为超级视图之后,该约束仍位​​于元素层次结构中,但应将其移至视图层次结构,或者最好将长宽比约束从元素拖动到并选择相等的宽度。

答案 16 :(得分:0)

只需退出项目,然后再次打开Story Board,即可使用所有设计控件。就我而言。

答案 17 :(得分:0)

仅供参考,我得到了这个答案,并且在日志中写着...

异常名称:NSInternalInconsistencyException 异常原因:小数位数必须> 0

事实证明,原因是我一直在转换为暗模式,并使用Image Assets制作按钮等图标。原来,我有一个选项卡控制器,指向的页面尚未将其图标设置为资产目录图像。

答案 18 :(得分:0)

我在Xcode 10.2.1中遇到了同样的问题

我有开放的界面生成器(故事板)作为源代码,就像通过右键单击情节提要文件上的附件截屏

enter image description here

遵循以下步骤

  1. 将版本3.0更新为3.5 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0"
  2. 再次打开情节提要作为界面生成器

现在它已经刷新了,我现在没有错误并且视图也正确

但是,当我修改故事板的云杉代码时,版本又恢复为3.0。

但这可以刷新并解决了我的问题

答案 19 :(得分:0)

我今天遇到了同样的问题

Xcode 10.1;退出Xcode并重新启动Mac Book,今天已解决此问题,

答案 20 :(得分:0)

我也遇到了这个问题,我尝试了此处提供的大多数解决方案。

最后,帮助我退出Xcode(版本10.1)并重新启动MacBook的原因。

答案 21 :(得分:0)

  

Xcode 9.3

     

空故事板/新项目

     

macOS High Sierra 10.13.4

对于我的情况,当我从工作区打开故事板时会发生这种情况。

所以我摆脱了工作空间和cocoapods。然后只使用xcode项目和carthage用于第三方库。故事板打开得更快,没有这个错误。

答案 22 :(得分:0)

当Interface Builder出现问题时,此错误是一般错误。不幸的是,错误本身并未指出具体原因。它有时是工具中的错误,有时是操作系统中的错误,有时是开发人员代码中的错误,有时是用户配置中的错误。

常见原因包括:

  • 文件上设置的权限/所有权不正确。
  • 手动删除〜/ Library / Developer。
  • 中的文件
  • 安装有缺陷的第三方文件夹(特别是安全或防火墙软件)。

答案 23 :(得分:0)

我遇到了同样的问题。并通过更新命令行工具和/或删除未使用/较旧的Xcode版本来解决,

转到Xcode 偏好设置&gt;地点

  1. 将命令行工具更新为 Xcode 9.0
  2. 删除衍生数据
  3. 此外,删除较旧的Xcode版本
  4. 重新启动Mac

答案 24 :(得分:0)

我通过 -

解决了这个问题
  1. 将我的Mac更新为MacOS High Siera
  2. 删除了Xcode
  3. 从AppStore安装新的Xcode

答案 25 :(得分:-1)

步骤 1) 打开 storyboard 作为源代码,如下所示: enter image description here

步骤 2) 您将在顶部看到这一行,将 version="3.0" 更改为 version="3.5"

<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">

3) 步骤 3 重新启动 Xcode。

希望对您有所帮助。

答案 26 :(得分:-1)

退出 Xcode 并重新打开它而不使用 Rosetta,一切都会好起来的。

Xcode screenshot