【问题标题】:xcode 6 swift Slow typing & Autocompletionxcode 6 swift 慢速打字和自动完成
【发布时间】:2015-08-22 08:57:01
【问题描述】:

我受打字和自动完成的困扰,它需要太多时间,只有当 swift 文件的行代码超过 1500 行时才会出现这个问题。使用小行代码,例如在 1000 行以下,一切都会好起来的。

所以我尝试将 swift View 控制器文件拆分为 2 个 swift 文件,

我已经从视图控制器中取出较长的函数并将它们粘贴到新的 swift 文件中,xcode 6 可以正常工作。

但是出现了一个新问题,即 swift 不支持将 swift 文件导入另一个 Swift 文件。所以我在新创建的 swift 文件中创建了视图控制器的实例,所以我以为我保存了问题,但是视图控制器的实例只能访问变量、常量和函数,

检查错误

viewController.swift

viewController: UIViewController
{
  var someClass = foo() // assuming this class has x = 5
  var x: Int = 10
}

testFile.swift

 import Foundation
 let beginTest = viewController()
  func testPrint()
  {
    println("x in view Controller = \(beginTest.x)") // prints 10 
    println("x in the foo() = \(beginTest.someClass.x)") // Error view controller doesn't have a member named someClass

  }

如何在不创建实例或导入文件的情况下解决此问题。

如何通过创建视图控制器实例来解决这个问题?

附:我有 2013 年中期的 Macbook Air,核心 i5,4Gb,Intel HD Graphics 5000 1536MB

【问题讨论】:

  • 为什么会有1500行的源代码文件?你不应该有这个......这是你的问题,而不是自动完成失败......
  • 好吧,其他用户抱怨,因为 xcode 在达到 8000+ 行源代码时会受到影响,所以与视频游戏源代码相比,1500 行不算什么:)
  • 源代码1500行或8000行没有错。问题是当所有这些源代码完全无缘无故地在同一个文件中时。您可能能够在单个文件中找到包含 8000 行源代码的游戏,但您找不到任何由知道自己在做什么的人编写的代码接近这么多源代码行。

标签: xcode swift xcode6


【解决方案1】:

您应该在 swift 中使用 'extension' 来根据需要在逻辑上拆分类的实现。 Refer documentaion

例如,我们可以将类 A 的实现拆分为两个文件:

//A.Swift 

class A
{
    func func1() -> String {
        return "func1"
    }
//Other functions...


}

//A_Extension.swift

extension  A
{
    func funcB() -> String
    {
        return "B"
    }
 //Other functions if any...


}

【讨论】:

    【解决方案2】:

    如果您启用了测试覆盖率数据收集(编辑方案、测试),请禁用它。对我来说,这可以按数量级加快编辑速度。

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      相关资源
      最近更新 更多