質問
import Swift
とimport Foundation
の違いは何ですか?
このコメント by Martin R を読むまで、import Swift
があることすら知りませんでした。
読書
ドキュメントが見つかりませんでしたが、Google検索を実行してもあまり表示されませんでした。
試したこと
試してみると、import Swift
はコンパイルエラーを発生させないことがわかりますが、それでも私の質問には答えられません。
推測すると、Swift for Swiftプロジェクトと、Foundation for Objective-CプロジェクトまたはおそらくSwift Objective-Cクラスを使用するプロジェクト(NSString
など)。
プレイグラウンドでこれをテストする:
import Foundation
import Swift
var str = "Hello, playground"
let str2: NSString = "hello"
let str3: String = "hello"
import Swift
をコメントアウトするとエラーは発生せず、str
はString
タイプです。ただし、import Foundation
をコメントアウトすると、NSString
に対して「宣言されていないタイプ」エラーが発生します。
私の質問再訪
Foundationを放棄し、Swiftを使用するだけで十分です。したがって、古いObjective-Cクラスの1つを特に使用する必要がない限り、常にSwift=を常にインポートする権利がありますか?
はい、必要なのはimport Foundation
NSObjectまたはそのサブクラスの1つにアクセスする場合。 Foundationは、そのクラス階層をもたらすフレームワークです。ただし、プロジェクトではimport Swift
。ロブがコメントしたように、import UIKit
も素敵なオプションです。
まだ読んでいない場合は、AppleがFoundationフレームワークを説明しています here 。
文字列、日付などを使用する場合は、Foundationをインポートする必要があります。
Foundationフレームワークは、データストレージと永続性、テキスト処理、日付と時刻の計算、並べ替えとフィルター、ネットワークなど、アプリとフレームワークの機能の基本層を提供します。
UITableViewController、UIAlertControllerを使用する場合は、UIKitをインポートする必要があります。
UIKitをインポートする場合、Backstageですでにインポートされているため、Foundationをインポートする必要はありません。
Swift=標準ライブラリは、Swiftプログラムを作成するための機能の基本層を定義します。
基本データ型、共通データ構造、print(:separator:terminator :)やabs(:)などのグローバル関数、CollectionおよびEquatable ...などのプロトコル
Foundationをインポートする場合は、Swiftをインポートする必要はありません。FoundationにはデフォルトでSwift標準ライブラリが含まれています。
iOSアプリ用ではないもの、たとえばVaporに基づいたサーバープログラミングなどを書いている場合、Swiftのインポートを検討する必要があるかもしれません。
参照: https://developer.Apple.com/documentation/Swift/swift_standard_library/
参照してください:- https://hasancan.tech.blog/2018/01/17/import-foundation-vs-uikit/
import Foundation NSObjectまたはそのサブクラスの1つにアクセスするために使用されます。NSObjectはObjective Cランタイム機能を使用してクラスを拡張できますが、UIKitのインポートまたはSwiftのインポートは自動的に行われますXcodeプロジェクトを作成しながら生成する