Импорт Swift vs import Foundation
Вопрос
В чем разница между import Swift
и import Foundation
?
Пока я не прочитал этот комментарий от Martin R, я даже не знал, что есть import Swift
.
Чтение
Я не мог найти документацию, и поиск Google не сильно увеличился.
Что я пробовал
Тестирование показало, что import Swift
не дает компиляции ошибок, но это не отвечает на мой вопрос.
Если бы я предполагал, я бы сказал, что вы импортируете проекты Swift для Swift и импортируете проекты Foundation для 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
.
Мой вопрос пересмотрен.
Я был бы счастлив оставить Фонд и просто использовать Свифт. Так что я прав, чтобы просто импортировать Swift все время, если я специально не хочу использовать один из старых классов Objective-C?
Ответы
Ответ 1
Да, вам нужно будет import Foundation
, если вы хотите получить доступ к NSObject или одному из его подклассов. Фонд - это основа, которая вносит в эту иерархию классов. Однако очень вероятно, что в проекте вам потребуется больше, чем просто import Swift
. Как сказал Роб, import UIKit
также хороший вариант.
Если вы еще не прочитали его, Apple объясняет инфраструктуру Foundation здесь.
Ответ 2
Если вы хотите работать со строками, датами и т.д., Вам нужно импортировать Foundation.
Платформа Foundation предоставляет базовый уровень функциональности для приложений и платформ, включая хранение и сохранение данных, обработку текста, вычисления даты и времени, сортировку и фильтрацию, а также работу в сети.
Если вы хотите работать с UITableViewController, UIAlertController вам нужно импортировать UIKit.
Если вы импортируете UIKit, вам не нужно импортировать 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/
Ответ 3
import Foundation, используемый для доступа к NSObject или одному из его подклассов. NSObject означает, что мы можем расширить наш класс, используя целевые функции времени выполнения C. Но импортируем UIKit или import swift, которые автоматически генерируются при создании нашего проекта xcode