【问题标题】:Xcode 7.3: import Module displayed with strikethroughXcode 7.3:导入模块以删除线显示
【发布时间】:2016-03-23 14:11:50
【问题描述】:

Xcode 升级到 7.3 后,我发现在导入时有些模块被删除了,就像这个截图:

但是在添加模块之后(所以只需按 enter)一切都很好。这意味着什么?这里的模块是用 Swift 编写的,运行良好。

【问题讨论】:

  • 是的!我在导入 CoraData 模块 时得到的相同
  • 是的,还有 MapKit。
  • CoreData 对我来说没有被击穿,但像 ClockKitCoreLocation 这样的其他人是。
  • 这很奇怪 - 因为一切正常(并非所有模块都发生这种情况)可能是一个错误,或者可能是一个没有任何意义的功能;)
  • @PetahChristian 看到我已经为 CoreData 添加了快照here,但有趣的 MapKit 看起来很适合我

标签: ios xcode swift xcode7.3


【解决方案1】:

这是一个错误。我们已经在218010af 中修复了它,它应该包含在 Swift 2.2.1 版本中,并且包含在 2016-04-12-a developer snapshot 中。

【讨论】:

  • “这是一个在版本 X 中修复的错误”是一个答案——但这个答案没有提到版本,所以它对未来的读者不是很有帮助。
  • 这仍然是一个答案,如果现在清楚它只是一个错误,已经报告并希望在下一个版本中修复。
  • @JeffreyBosboom 已更新。提交 ID 已经隐式与发布相关联,但为了清楚起见,我已明确命名。
  • Xcode 7.3.1(目前可通过GM seed 下载)包括 Swift 2.2.1,根据the Swift download page,尽管xcrun swift -v 仍将其称为 2.2 版。
【解决方案2】:

如果您尝试导入已由您的文件或模块导入的模块,则会出现删除线:

在这种情况下,我已经导入了 Foundation(它隐式导入了 CoreFoundation),所以 Xcode 告诉你不需要再次导入任何一个模块。

【讨论】:

  • 虽然 Xcode 在您的情况下表现正确,您故意复制了模块 import,但在 this question 中解释的不当行为仍然存在。需要导入但以删除线字体显示的模块。
  • @EugeneDubinin 对,这就是为什么我说它可能是重复的,而不是肯定的 100% 重复。
  • 如果 Dog 类是 Animal 类的子类,并且动物已经导入,例如Alamofire,然后您在 Dog Alamofire 中导入 Alamofire 也会获得红色删除线。但它具有误导性,因为子类不能使用其超类的导入,所以我想这也是一个错误......
  • 如果 Foundation 是通过桥接头文件中的包含间接导入的,也会发生这种情况。
【解决方案3】:

当一个框架已经被你已经导入的任何其他框架导入时,通常会发生这种情况。

例如,UIKit 已经与 Foundation 一起导入,因此您无需手动导入。

【讨论】:

    【解决方案4】:

    我改变了导入的顺序

    import Foundation
    import UIKit
    import LayerKit
    import Atlas  < red line
    
    
    import Foundation
    import UIKit
    import Atlas
    import LayerKit
    

    一些可能导致它的注释:

    • LayerKit 导入 Atlas,即使 LayerKit 是较低级别的 API Atlas是UI层

    • 都是 Cocoapod 进口产品

    • 为 App Store/企业创建第二个架构时出现错误 释放并清洁一个并切换到另一个。

    • 删除派生 数据没有清除它。
    • 所以尝试重新排列它们,红线消失了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多