Question
Quelle est la différence entre import Swift
et import Foundation
?
Jusqu'à ce que je lise ce commentaire par Martin R , je ne savais même pas qu'il y avait un import Swift
.
Lecture
Je n'ai pas pu trouver la documentation et faire une recherche Google n'a pas été très utile.
Ce que j'ai essayé
Le tester montre que import Swift
ne donne aucune erreur de compilation, mais cela ne répond pas vraiment à ma question.
Si je devais deviner, je dirais que vous importez Swift pour Swift projets et que vous importez des projets Foundation for Objective-C ou peut-être pour Swift qui utilisent des classes Objective-C (comme NSString
).
Tester cela dans l'aire de jeux:
import Foundation
import Swift
var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"
Commenter import Swift
ne donne aucune erreur et str
est du type String
. Cependant, commentant import Foundation
donne une erreur de "type non déclaré" pour NSString
.
Ma question revisitée
Je serais assez heureux d'abandonner Foundation et d'utiliser simplement Swift. Ai-je donc raison d'importer simplement Swift tout le temps, sauf si j'ai spécifiquement besoin d'utiliser l'une des anciennes classes Objective-C?
Oui, vous aurez seulement besoin de import Foundation
si vous souhaitez accéder à NSObject ou à l'une de ses sous-classes. Foundation est le cadre qui introduit cette hiérarchie de classes. Cependant, il est fort probable que dans un projet, vous aurez besoin de plus que import Swift
. Comme Rob l'a commenté, import UIKit
est également une option intéressante.
Si vous ne l'avez pas déjà lu, Apple explique le framework Foundation ici .
Si vous souhaitez travailler avec des chaînes, des dates, etc., vous devez importer Foundation.
Le framework Foundation fournit une couche de base de fonctionnalités pour les applications et les frameworks, y compris le stockage et la persistance des données, le traitement de texte, les calculs de date et d'heure, le tri et le filtrage, et la mise en réseau.
Si vous souhaitez travailler avec UITableViewController, UIAlertController, vous devez importer UIKit.
Si vous importez UIKit, vous n'avez pas besoin d'importer Foundation car il l'importe déjà dans les coulisses.
La bibliothèque standard Swift définit une couche de base de fonctionnalités pour l'écriture de programmes Swift, y compris:
Types de données fondamentaux, structures de données communes, fonctions globales telles que l'impression (: separator: terminator :) et abs ( :), protocoles, tels que Collection et Equatable ... etc.
Si vous importez Foundation, il n'est pas nécessaire d'importer Swift à nouveau car Foundation contient des références à Swift Standard Library par défaut).
Lorsque vous écrivez quelque chose qui n'est pas pour les applications iOS, comme par exemple une programmation serveur basée sur Vapor, vous devrez peut-être envisager d'importer Swift.
Voir: - https://developer.Apple.com/documentation/Swift/swift_standard_library/
Veuillez vous référer: - https://hasancan.tech.blog/2018/01/17/import-foundation-vs-uikit/
import Foundation utilisé pour accéder à NSObject ou à l'une de ses sous-classes.NSObject signifie que nous pouvons étendre notre classe en utilisant Objective C fonctionnalités d'exécution.Mais importez UIKit ou importez Swift, qui est automatiquement générer pendant que nous créons notre projet xcode