2015-11-26 21 views
17

FrageImport Swift vs Import Foundation

Was ist der Unterschied zwischen import Swift und import Foundation?

Bis ich this comment von Martin R gelesen habe, wusste ich nicht einmal, dass es eine import Swift gab.

Lesen

ich nicht in der Dokumentation und tun eine Google-Suche erscheinen nicht viel finden konnte.

Was habe ich versucht,

Testen Sie es aus zeigt, dass import Swift keine Fehler kompilieren nicht geben, aber das ist nicht wirklich meine Frage beantworten.

Wenn ich rate, würde ich sagen, dass Sie Swift for Swift-Projekte importieren und Foundation für Objective-C-Projekte oder Swift-Projekte importieren, die Objective-C-Klassen verwenden (wie NSString).

diese Prüfung auf dem Spielplatz:

import Foundation 
import Swift 

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

aus import Swift gibt keine Fehler Kommentieren und str ist von String Typ. Das Auskommentieren von import Foundation gibt jedoch einen "nicht deklarierten Typ" Fehler für NSString.

Meine Frage revisited

würde ich glücklich genug sein Foundation zu verlassen und nur Swift verwenden. Bin ich also richtig, Swift die ganze Zeit zu importieren, wenn ich nicht speziell eine der alten Objective-C-Klassen benutzen muss?

+5

Verwenden Sie einfach, was auch immer Ihr Code erfordert. Wie Martin in seinem Kommentar sagte, mit dem du verlinkt hast, kannst du die engstmögliche Klasse für das verwenden, was du in deinem Code tust. Also, wenn Sie UIKit importieren, wenn Sie UIKit-Klassen verwenden. Verwenden Sie 'import Foundation', wenn Sie Foundation-Klassen, aber nicht UIKit verwenden. Verwenden Sie 'swift importieren '. Wenn Sie keine UIKit- oder Foundation-Klassen benötigen. – Rob

+4

Ich denke 'import Swift' ist immer implizit da, keine Notwendigkeit, es zu tippen. – Kametrixom

Antwort

17

Ja, Sie benötigen nur import Foundation, wenn Sie auf NSObject oder eine seiner Unterklassen zugreifen möchten. Foundation ist das Framework, das diese Klassenhierarchie einbringt. Es ist jedoch sehr wahrscheinlich, dass Sie in einem Projekt mehr als nur import Swift benötigen. Wie Rob kommentierte, import UIKit ist auch eine nette Option.

Falls Sie es noch nicht gelesen haben, erklärt Apple das Foundation Framework here.

Verwandte Themen