【问题标题】:Xcode 6 code editor erratic behaviourXcode 6 代码编辑器异常行为
【发布时间】:2014-11-05 15:48:16
【问题描述】:

最近我在使用 Xcode 的 6 代码编辑器时遇到了一些问题,即在编辑窗口中快速更改焦点,在编辑文本时跳转到同一文件中完全不同的位置。这就是一切的开始。最近编辑器拒绝上下滚动、挂起、停止显示行号或任何其他文本。 我能做些什么来让它停止行为不端?到目前为止,我发现的所有解决方案都与旧版本的 Xcode 有关,对我不起作用。

更新:我最初以为是 Optionals。我的代码中有一点是这样做的:

tile?.position.vertical >= 2

我假设通过将可选值与值进行比较,我弄乱了编译器,我应该只将它与 nil 进行比较。随后的测试证明我错了。然后我注意到我的枚举之一:

enum Figure: Int {
     case King = 0
     case Pawn = 1
     case Bishop = 3
     case Knight = 5
     case Rook = 7
     case Queen = 9

     func pieceName() -> String {
        switch self {
        case .Pawn:
            return "Pawn"

        case .King:
            return "King"

        case .Bishop:
            return "Bishop"

        case .Knight:
            return "Knight"

        case .Rook:
            return "Rook"

        case .Queen:
            return "Queen"
        }
    }
}

请注意代码在 switch 语句中的着色效果如何,显然 Pawn、King 等是同一个枚举的一部分。好吧,在我的情况下不是。当我命令单击函数中的一个 case 值时,我的 Xcode 副本会显示“未找到符号”。 那么,您认为这可能是造成我麻烦的罪魁祸首吗?如果是,我该如何解决?

【问题讨论】:

  • 我不知道解决方法,但我看到了同样的情况。当我尝试键入时,编辑器会跳转到文件中的随机位置。文本消失并重新出现。我已经关闭了所有插件和所有代码完成的东西,它仍在发生。
  • @KirbyTodd,我想我有一个解决方案。如果您使用自定义颜色主题并且有不同大小的字体以及斜体和粗体的混合,它可能会导致我们看到的内容。对我来说,删除斜体并均衡所有字体大小就可以了。您能否更改您的颜色主题并将结果返回给我,以便我们将其发布为答案。
  • 在我的主题中将字体全部设置为相同大小后,问题就消失了。好收获!
  • 我的字体大小都一样,这仍然发生在我身上。结果在 xCode8(甚至在 xCode7)中,您会遇到同样的问题,因为 Apple 自己的警告对话框中的字体大小不一样。必须使用 CLANG #Pragma pop stackoverflow.com/a/40063442/2057171 关闭已弃用的警告

标签: xcode swift enums editor


【解决方案1】:

均衡所有字体大小并删除颜色主题中的所有斜体和粗体。

我在 Apple 开发者论坛中发现的这个问题的答案。不幸的是,我在那里找不到线程。它基本上说我遇到的行为是我使用的颜色主题具有不同大小的字体以及斜体和粗体组合的结果。问题是在这个人的帖子之后没有更多的cmets,确认或反驳解决方案。对我来说,它做到了。现在@Kirby Todd 已经确认了,我将其发布为答案。

【讨论】:

  • 我将关键字设置为半粗体并看到另一个不好的效果:行号排水沟(和其他一些部分)现在在每次按键时不断闪烁并且经常保持空白,而不是显示行号。 XCode 6 确实是十年来最糟糕的 XCode 版本。
  • 你看到的那种闪烁,我以前也有。再一次,我在整个颜色主题中使用相同的字体设置,这一切都消失了。
  • 我将 cmets 字体设置为斜体。在 Xcode 6 中,输入时结果有些闪烁。我确实将我的字体和颜色主题更改为默认主题......现在它再次正常工作
  • 这个问题在 Xcode 7 beta 上仍然出现,它总是让我发疯。我将尝试此修复并报告。干杯。谢谢!
  • 我在 7.3 中仍然有这个问题。将所有文本设置为相同的字体大小后,跳跃终于停止了。
【解决方案2】:

这在 Xcode 7.1.1 (7B1005) 中发生在我身上。它变得如此糟糕,我又回到了 vi 一段时间!

我考虑了上面的讨论,但我从未调整过我的字体并且使用的是默认值。我在 MacBook Air 上。没有足够的内存压力或用于表明它正在交换并且无法跟上的内存,这是另一个合理的原因

但是,就我而言,至少 删除所有“派生数据”后问题就消失了。我什至不必退出 Xcode!

这很简单(此处提供给可能不知道的人):

  1. 从 Xcode 的 Window 菜单中选择 Projects
  2. 确保左侧突出显示的项目是您的项目(或单击您的项目使其如此)
  3. 点击删除...按钮 在“派生数据”旁边。

【讨论】:

  • 按照苹果通常的做法,他们在 xcode 8 中改变了这一点。要访问派生数据,如果您在工作区环境中,您可以转到文件 > 工作区设置或文件 > 项目设置常规项目环境。然后单击派生数据部分下的灰色小箭头并选择您的项目文件夹以将其删除。一旦 xcode 的开发人员意识到用户没有受到足够的折磨,这种情况肯定会改变。
【解决方案3】:

我终于解决了这个问题。

我有一个大型项目,其中包含 很多行 和一些 已弃用的警告,因为我使用了不再受支持的 UIAlertView 之类的东西。事实证明,是警告导致了线路跳跃。编辑器似乎在计时器上运行,以每 5 秒的疯狂速度检查新警告,因此每 5 秒它会查看我的代码是否更新,如果更新,它将再次运行整个事情,标记所有黄色警告标签,如果我的项目中的行数发生变化,这尤其不稳定,因为警告窗口必须向下(或向上)移动。 这会导致渲染问题,我正在编辑的行会​​上下移动,非常讨厌。

长话短说,我通过简单地将我的 .m 包装在 #pragma 标记中关闭了已弃用的警告,这一切都消失了(编辑器也变得明显不那么滞后了(顺便说一句,这是一个 30k 行的代码 .m 文件)非常滞后开始)。

相关:How to get rid of deprecated warnings in xCode with #Pragma CLANG

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多