2015-11-26 3 views
17

Вопросимпорта Swift против импорта Фонд

В чем разница между import Swift и import Foundation?

До тех пор, пока я не прочитал this comment от Martin R, я даже не знал, что существует import Swift.

Чтение

Я не мог найти документацию и делать поиск Google не оказаться много.

То, что я пытался

тестирования его показывает, что import Swift не дает какой-либо ошибки компиляции, но это не реально ответить на мой вопрос.

Если бы я мог предположить, что вы импортируете проекты Swift для Swift и импортируете проекты Foundation для Objective-C или, возможно, для проектов Swift, которые используют классы Objective-C (например, NSString).

Тестирование это в Playground:

import Foundation 
import Swift 

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

import Swift Комментирование не дает никаких ошибок и str имеет String типа. Однако комментирование import Foundation дает ошибку «необъявленного типа» для NSString.

Мой вопрос вновь

Я был бы счастлив, достаточно, чтобы отказаться от Фонда и просто использовать Swift. Так что я прав, чтобы просто импортировать Swift все время, если я специально не хочу использовать один из старых классов Objective-C?

+5

Просто используйте то, что требует ваш код. Как сказал Мартин в своем комментарии, с которым вы связались, вы можете использовать самый узкий класс для того, что вы делаете в своем коде. Так что если 'import UIKit', если вы используете классы UIKit. Используйте 'import Foundation', если используете классы фундамента, но не UIKit. Используйте 'import Swift' Если вам не нужны классы UIKit или фундамента. – Rob

+4

Я думаю, что 'import Swift' всегда неявно там, не нужно его вводить. – Kametrixom

ответ

17

Да, вам нужно будет только import Foundation, если вы хотите получить доступ к NSObject или одному из его подклассов. Фонд - это основа, которая вносит в эту иерархию классов. Однако очень вероятно, что в проекте вам понадобится больше, чем просто import Swift. Как и Роб комментировал, import UIKit также является хорошим вариантом.

В случае, если вы еще не прочли его, Apple объясняет основы Фонда here.