我正在使用SnapKit.swift和其他框架。我想知道为什么有时我需要添加import SnapKit.swift
以及为什么有时候我不需要在文件中使用SnapKit。
有人能指出一些有关Swift导入系统如何运作的资源吗?
编辑:以下代码可以正常工作而无需导入SnapKit
import UIKit
class ImageEditViewController: UIViewController {
private var imageView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
imageView = UIImageView(image: UIImage.init(named: "img.jpg"))
self.view.addSubview(imageView)
imageView.snp_makeConstraints { (make) -> Void in
make.center.equalTo(self.view)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:0)
事实上,只要您在Swift文件中直接使用它,就必须import SnapKit
。除非您导入它,否则无法使用它。
另一方面,如果其他框架已导入SnapKit
,则无需再次导入。
即:在swift标准库中。
如果您想使用Foundation,则应import Foundation
。
如果您import UIKit
,则不需要import Foundation
,因为UIKit已经import Foundation
答案 1 :(得分:0)
这是因为Swift中的import
语句与Python和Java等其他语言的工作方式完全不同。让我在这里澄清一些术语,你import
被称为"模块"而不是框架。
在Swift中,一些模块导入其他模块。例如UIKit模块导入Foundation。因此,当您导入UIKit时,您不再需要导入Foundation。因为UIKit已经进口了它。
因此,在您的情况下,您必须在swift文件中使用import SnapKit
才能使用其中的内容,就像Foundation示例一样。但是,如果您导入另一个导入SnapKit的模块,(我对此不了解),让我们称之为MyKit
。你只需要写
import MyKit
使用SnapKit中的所有内容和 MyKit!
简而言之,一些模块会导入其他模块。这就是您有时可以省略导入的原因。