2015-11-26 31 views
17

pytańimport Swift vs importowej Fundacji

Jaka jest różnica między import Swift i import Foundation?

Do czasu odczytu this comment przez Martin R, nawet nie wiedziałem, że istnieje import Swift.

Reading

nie mogłem znaleźć w dokumentacji i robi wyszukiwania Google nie pojawił się znacznie.

Co próbowałem

Badanie to pokazuje, że import Swift się nie daje żadnej kompilacji błędy, ale to naprawdę nie jest odpowiedź na moje pytanie.

Jeśli miałbym zgadywać, chciałbym powiedzieć, że importujesz Swift do projektów Swift i importujesz projekty Foundation for Objective-C lub być może dla projektów Swift, które używają klas Objective-C (jak NSString).

Testowanie to na boisku:

import Foundation 
import Swift 

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

zakomentowanie import Swift daje żadnych błędów i str jest String typu. Jednak komentarz import Foundation podaje błąd "niezadeklarowanego typu" dla NSString.

Moje pytanie revisited

byłbym wystarczająco szczęśliwy porzucić Foundation i po prostu używać Swift. Czy mam rację, aby importować Swift przez cały czas, chyba że potrzebuję konkretnie użyć jednej ze starych klas Celu-C?

+5

Użyj tylko tego, czego wymaga twój kod. Tak jak Martin powiedział w swoim komentarzu, że jesteś połączony, możesz użyć najwęższej możliwej klasy do tego, co robisz w swoim kodzie. Więc jeśli 'importuj UIKit' jeśli używasz klas UIKit. Użyj 'import Foundation' jeśli używasz klas fundamentów, ale nie UIKit. Użyj 'import Swift', jeśli nie potrzebujesz żadnych klas UIKit lub fundamentów. – Rob

+4

Myślę, że 'import Swift' jest zawsze niejawnie, nie ma potrzeby go wpisywać. – Kametrixom

Odpowiedz

17

Tak, będziesz potrzebować tylko import Foundation, jeśli chcesz uzyskać dostęp do NSObject lub jednej z jej podklas. Podstawą jest struktura, która wprowadza hierarchię klas. Jest jednak bardzo prawdopodobne, że w projekcie będziesz potrzebować czegoś więcej niż tylko import Swift. Jak skomentował Rob, import UIKit jest również fajną opcją.

Jeśli jeszcze go nie przeczytałeś, Apple wyjaśnia strukturę Foundation here.