2016-01-04 44 views
-1

我正在使用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

在事實上,你必須import SnapKit每當你直接在斯威夫特文件中使用它。除非您導入它,否則無法使用它。

在另一隻手,如果其他框架已經導入SnapKit,你不需要再次導入。

即:在快速標準庫中。

如果你想用粉底,你應該import Foundation。 如果import UIKit,你不需要import Foundation,因爲UIKit中已經有import Foundation

0

這我因爲在雨燕import的語句從像Python和Java等語言的作品非常不同。讓我在這裏澄清一些術語,你叫import被稱爲「模塊」,而不是框架。

在斯威夫特,一些模塊,導入其他模塊。例如UIKit模塊導入Foundation。所以當你導入UIKit時,你不需要再導入基礎。因爲UIKit已經導入它。

所以你的情況,你總是要import SnapKit在迅速文件才能使用的東西在裏面,就像基金會例子。但是,如果您導入另一個導入SnapKit的模塊,(我對此一無所知),我們稱之爲MyKit。你只需要編寫

import MyKit 

使用所有的東西在SnapKit MyKit!

總之,一些模塊導入其他的。這就是爲什麼你有時可以省略進口。

+0

我已添加代碼段。我認爲在這種情況下UIKit不會導入SnapKit。而我的代碼仍然有效。 –

+0

爲什麼你不覺得UIKit導入SnapKit? @MortyChoi – Sweeper

+0

由於SnapKit是github中的開源庫,UIKit是蘋果官方sdk。我不認爲官方模塊會導入一個開源模塊。 –