Xcode 10 Storyboard 非常慢到没有响应的地步

Posted

技术标签:

【中文标题】Xcode 10 Storyboard 非常慢到没有响应的地步【英文标题】:Xcode 10 Storyboard extremely slow to the point of unresponsive 【发布时间】:2017-09-27 13:49:45 【问题描述】:

我的 Xcode 8.3.3 故事板非常慢,几乎没有响应,我不知道是什么原因造成的。

试过了:

删除 xcuserdata 并再次打开 Xcode。

在不同的项目上打开 Xcode。 (它工作得很好。它似乎只是这个特定项目中的一个 main.storyboard。)

提取 main.storyboard 文件并打开和关闭 Xcode,然后将其放回。

重新启动我的 Mac(2016 年末。用触控栏翻新。16GB 内存和 512GB 存储空间。)

清理项目。 (CMD+Shift+K)

所有这些都失败了,我正试图在下周启动我的应用程序。如果这种情况持续存在,我将无法启动并且会落后于我的日程安排。

当我删除 xcuserdata 时,我能够导航到另一个 .swift 文件并且它工作正常。但是当我进入情节提要时,它基本上会减慢到 1FPS。 (我有一台 16GB 内存的 MacBook Pro,我不知道为什么它不能更好地处理这个问题。)

我真的厌倦了这个,我尝试过的所有其他事情都没有奏效。

【问题讨论】:

您是否尝试将故事板拆分为更小的故事板并将它们与故事板参考链接? 这是一个特定的项目吗?还是所有其他项目也会发生这种情况? 只有这一个项目,我无法拆分情节提要,因为它太慢了,如果它有助于它在我向视图控制器添加按钮后立即启动,然后离开去做一些事情 【参考方案1】:

我为遇到此问题的任何人找到了我自己的问题的答案。

    通过单击xcodeproj 文件上的显示包内容,从 Xcode 项目中清除您的 xcuserdataxcworkspace。将 xcuserdataxcworkspace 移至回收站。

    这允许您再次打开您的 Xcode 项目并能够将故事板作为源代码打开。它会重置您打开的最后一个文件。为此,请在main.storyboard 上右键单击(或在触控板上两指单击)并选择作为源代码打开

    在顶部,您会看到一些与此类似或相同的代码

<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="ios.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="OjV-iF-7f7">
<device id="retina5_5" orientation="portrait">
    <adaptation id="fullscreen"/>
</device>
<dependencies>
    <deployment identifier="iOS"/>
    <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
/* delete this here */
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<customFonts key="customFonts">
    <array key="small_pixel.ttf">
        <string>Small-Pixel</string>
    </array>
</customFonts>
<scenes>

不要惊慌,你只是在寻找一条线。无需进行任何编辑。

<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/"  
    找到后,从代码中删除整行。

您现在应该能够通过右键单击(两指单击触控板)并选择作为界面构建器打开,将 main.storyboard 文件作为普通界面构建器打开。

(01/07/2020) 报告指出这仍然适用于最新版本的 Xcode。

【讨论】:

我看到 Xcode 9.1 中情节提要的更新非常缓慢,并尝试了第 4 步。当我回到情节提要时,一切都运行得更好了!当我回到源头时,功能又被添加回来了!我想知道诀窍是否只是在代码中打开故事板然后回到 IB? 老实说,我不知道为什么会这样,我很高兴我能找到解决方法,因为我有最后期限,这让我很困惑 在 Xcode 9.3 中我尝试了所有这些,但是从类移动到情节提要时仍然非常慢,反之亦然。 我删除了该行,清理了构建,再次构建它。改了一个标签标题,再次构建(每次2分钟),再次在“源代码”中打开,“以Xcode 8格式保存的文档”行又回来了!为什么? :-( (xcode 11) 我认为您不需要处理 xcuserdataxcworkspace 文件。在文本编辑器中删除功能行(当项目在 Xcode 中打开时)就足够了。【参考方案2】:

只有在 Xcode 10.1 版中编辑 xib 文件时,我的速度非常慢。对我有用的是禁用 Xcode/Preferences/Source Control 下的 Source Control,然后我再次选中“Enable Source Control”并修复它。

【讨论】:

当项目在 Xcode 11.7 中变慢时为我工作。【参考方案3】:

我在 xcode 10.1 上遇到了同样的问题,然后我将项目格式从 Xcode 8.0 - 兼容Xcode 9.3 - 兼容,一切顺利。

【讨论】:

【参考方案4】:

如果您的计算机有双显卡,您可以安装 GFXCardStatus 或切换到集成显卡。在这个操作之后,故事板对我来说效果很好。祝你好运!

https://github.com/steveschow/gfxCardStatus/releases/tag/v2.4.4i

【讨论】:

以上是关于Xcode 10 Storyboard 非常慢到没有响应的地步的主要内容,如果未能解决你的问题,请参考以下文章

尝试本地化 LaunchScreen.storyboard 以在 iOS 10 中使用 xcode 8.3.3 支持语言时出现问题

如何在Xcode 8中更好地使用StoryBoard

寻找关于将 Pre-Storyboard 代码(XCode4)移动到 Storyboard 代码(XCode5)的教程 [关闭]

打开大型 Main.storyboard 时 Xcode 挂起/意外退出

为什么Xcode不能识别Main.storyboard?

Xcode 4.4 现在可以合并两个开发者更改的storyboard 文件吗?