2015-11-26 35 views
17

問題進口斯威夫特VS進口基金會

是什麼import Swiftimport Foundation之間的區別?

直到我讀this commentMartin R,我甚至不知道有一個import Swift

閱讀

我找不到的文檔,做一個谷歌搜索不轉了很多。

我試過

測試它表明import Swift沒有給出任何編譯錯誤,但是這並沒有真正回答我的問題。

如果我猜測,我會說你爲Swift項目導入Swift,並且爲Objective-C項目導入Foundation,或者爲使用Objective-C類的Swift項目(例如NSString)導入基礎。

在操場上測試這樣的:

import Foundation 
import Swift 

var str = "Hello, playground" 
let str2: NSString = "hello" 
let str3: String = "hello" 

註釋掉import Swift沒有給出錯誤和strString類型。但是,註釋掉import Foundation會給出NSString的「未聲明類型」錯誤。

我的問題重新

我會很願意放棄基金會,只是用斯威夫特。那麼,我是否只需要一直導入Swift,除非我特別需要使用舊的Objective-C類之一呢?

+5

只要使用你的代碼就可以了。就像馬丁在評論中說的那樣,你可以使用可能最窄的類來爲你的代碼做什麼。因此,如果您使用UIKit類,則需要「導入UIKit」。如果使用基礎類而不是UIKit,請使用'import Foundation'。使用'import Swift'如果你不需要任何UIKit或基礎類。 – Rob

+4

我認爲'import Swift'總是隱含在那裏,不需要輸入。 – Kametrixom

回答

17

是的,如果您想訪問NSObject或其某個子類,則只需要import Foundation。基礎是引入該類層次結構的框架。但是,在一個項目中,您很可能需要的不僅僅是import Swift。像Rob評論說的,import UIKit也是一個不錯的選擇。

如果您還沒有閱讀,Apple解釋了Foundation框架here