Marcos y bibliotecas vinculados en el proyecto Swift

Mi aplicación iOS reproduce sonidos con AVPlayer . Para hacer esto tuve que escribir siguiendo en la parte superior de una class:

 import AVFoundation 

Vine de background Objective-C, así que fui a la pestaña General del proyecto Xcode y agregué AVFoundation allí haciendo clic en el button más debajo de los frameworks y bibliotecas Vinculados . La caja de herramientas amarilla apareció en mi proyecto. Tengo que hacer esto

Traté de eliminarlo del proyecto, tanto desde la barra lateral como desde las preferences de Xcode, mi aplicación sigue funcionando y los sonidos están sonando. ¿Importa todo lo que import por ti?

Sí, import en Swift es básicamente lo mismo que @import en Objective-C (en oposition a #import <…> ), que importan modules .

¿Esta nueva característica (modules) se introdujo recientemente (hace 1-2 años?) E importa el marco para usted sin la necesidad de vincular explícitamente su aplicación : al usar modules ( @import en ObjC, import en Swift), el el comstackdor verá el nombre del module y vinculará su aplicación con el marco de manera implícita y automática para usted.

Entonces esa es una nueva característica que no teníamos en el día en que #import era la única opción y nosotros mismos teníamos que agregar manualmente los frameworks del sistema.

(Tenga en count que los modules solo estaban disponibles para los frameworks de trabajo de Apple hasta que llegó iOS8. Pero ahora que puede crear sus propios frameworks dynamics cuando construye para iOS8, también están disponibles para frameworks de trabajo de terceros, siempre que tengan un module.map )


Si estás interesado, puedes leer más en la documentation de Clang . Varias publicaciones de blog también hablan sobre el tema (por ejemplo, el primer resultado de Google es esta publicación de blog )