Почему я могу просто использовать типы, определенные в платформе Foundation, просто импортировав платформу UIKit? - PullRequest
1 голос
/ 02 мая 2019

Почему я могу просто использовать типы, определенные в фреймворке Foundation, просто импортировав фреймворк UIKit?

import UIKit

// String is a Type defined in Foundation framework
let foo: String = ""

Я понимаю, что фреймворк UIKit зависит от фреймворка Foundation.

// Dependency
Application --> UIKit --> Foundation

Существуют ли какие-либо параметры компилятора, позволяющие приложению косвенно использовать зависимую инфраструктуру?

Я хотел бы указать любые такие параметры при создании собственной встроенной платформы.

1 Ответ

0 голосов
/ 02 мая 2019

Возможно, мне нужно исправить это, но я понимаю, что это не так.

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

Если вы хотите, чтобы Framework мог «передавать» типы и методы в Framework, от которого он зависит, вам нужно либо включить Framework, от которого он зависит, и позволить приложению получать к ним доступ напрямую, либо, в качестве альтернативы, Вы могли бы добавить некоторые сигнатуры методов и объявления typedef в вашей собственной Framework, чтобы сократить разрыв, если вам не нужно лучшее выражение.

Стоит также взглянуть на Эта статья на форумах swift.org , которая может помочь вам сделать то, что вам нужно, хотя пока выглядит, что то, что вы пытаетесь сделать, официально не поддерживается.

...