需要导入UIKit

时间:2015-10-03 20:22:06

标签: swift frameworks xcode6 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不需要。是什么原因?

2 个答案:

答案 0 :(得分:4)

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

但是因为所有Swift文件都导入了(Swift映射) 桥接头文件,如果桥接头文件直接或间接导入UIKit框架也就足够了。

这可能是您无需明确导入的原因 在旧项目的Swift文件中。

答案 1 :(得分:4)

这可能是因为你在你的.h文件中导入UIKit的桥接头中导入了一些Objective-C框架 - 这会自动将UIKit导入你所有的Swift类