как избежать импорта одного и того же Framework в каждый файл Swift

Есть ли способ всегда импортировать несколько библиотек в каждый файл? не помещая их в рамки

например, вместо того, чтобы делать

--MySwiftFile.swift--

import UIKit 
import Foundation
import ...

Я мог бы сделать что-то вроде:

--SharedImports.swift--

import UIKit 
import Foundation
import ...

--MySwiftFile.swift--

import SharedImports.swift

person Edward Ashak    schedule 22.03.2016    source источник


Ответы (1)


Ответ: «Нет, и это специально». Каждый файл должен знать контекст кода, содержащегося в этом файле. Он получает этот контекст из набора импортов.

Теперь, в конкретном случае UIKit и Foundation, должно быть так, что UIKit импортирует Foundation, поэтому я не думаю, что вам нужно явно вызывать оба в каждом файле. В приведенных выше примерах вы должны быть в состоянии обойтись только

import UIKit

Бывают случаи, например, при определении модели вашего приложения, когда вы можете захотеть, чтобы файл вносил Foundation, а не UIKit.

person Scott Thompson    schedule 22.03.2016
comment
Я поставил их двоих просто в качестве примера, но вы правы. что, если бы у меня был локальный фреймворк в моем проекте, и в фреймворке эти библиотеки были импортированы, мне все равно нужно было бы импортировать их явно, нет? - person Edward Ashak; 23.03.2016
comment
Да. Каждый файл компилируется как отдельная единица, и каждой единице нужен полный контекст, чтобы знать, что доступно коду в этой единице. - person Scott Thompson; 23.03.2016
comment
Как-то есть PrefixHeader.pch. Вы можете сделать обходной путь: создать файл Objective-C. Добавьте все те библиотеки, которые вы хотите импортировать повсюду, в PrefixHeader.pch, а затем импортируйте этот файл Objective-C через BridgingHeader... наверняка выполнимо, и ответьте определенно НЕТ, это неправильно. - person Adas Lesniak; 17.03.2019