我有一个项目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不需要。是什么原因?
答案 0 :(得分:4)
UIView
是在UIKit框架中定义的,所以使用Swift文件
该课程需要import UIKit
。
但是因为所有Swift文件都导入了(Swift映射) 桥接头文件,如果桥接头文件直接或间接导入UIKit框架也就足够了。
这可能是您无需明确导入的原因 在旧项目的Swift文件中。
答案 1 :(得分:4)
这可能是因为你在你的.h文件中导入UIKit的桥接头中导入了一些Objective-C框架 - 这会自动将UIKit导入你所有的Swift类