需要导入 UIKit 的新项目文件

New project files requiring the import of UIKit

我有一个项目A,我是用Swift1开始写的-Xcode6。我有一些扩展文件,例如:

extension UIView {
    convenience init(x: CGFloat, y: CGFloat, w: CGFloat, h: CGFloat) {
        self.init(frame: CGRect(x: x, y: y, width: w, height: h))
    }
}

我创建了一个新的项目 B 并将这些扩展文件复制到其中。我收到此错误:

UIViewExtensions.swift:11:11: Use of undeclared type 'UIView'

Project-A 中的文件不需要包含 UIKit,但 Project-B 中需要。这是什么原因?

UIView 是在 UIKit 框架中定义的,所以 Swift 文件使用 class 需要 import UIKit.

但由于所有 Swift 文件都导入了 (Swift 的映射) 桥接头文件,桥接头文件直接或间接导入UIKit框架也可以

这可能是您不必显式导入它的原因 在旧项目的 Swift 文件中。

这可能是因为您在桥接 header 中导入了一些 Objective-C 框架,而这些框架恰好在其 .h 文件中导入了 UIKit - 它会自动将 UIKit 导入到您所有的 Swift 类