3 votes

Bibliothèque standard de Swift avec symboles supplémentaires

Un fichier avec le contenu suivant:

public class Foo {
  var x : Int = 0  
  var y : Unit?
}

lorsqu'il est compilé en tant que partie d'un 'MacOS Framework' réussit (dans Xcode 8 beta). Remarquez qu'il n'y a pas d'instruction import; je m'attendrais à ce que le symbole Unit soit non lié - mais apparemment il est trouvé dans la dernière version de 'foundation' de MacOS.

Comment puis-je m'assurer que le fichier est compilé sans le symbole Unit?

Note: si je compile à partir de la ligne de commande avec swift File.swift alors, en fait, Unit est non lié, comme désiré:

File.swift:12:11: error: utilisation d'un type non déclaré 'Unit'
  var y : Unit?

et, si je compile avec le gestionnaire de package Swift alors Foundation n'est pas implicitement importé.

Alors, comment Xcode insère-t-il un import implicite que je n'ai pas besoin?

0voto

GoZoner Points 15679

Lors de la création d'un framework, Xcode crée un fichier d'en-tête TheFramework.h qui inclut des contenus comme :

#import 

//! Numéro de version du projet pour SBFrames.
FOUNDATION_EXPORT double TheFrameworkVersionNumber;

//! Chaîne de version du projet pour SBFrames.
FOUNDATION_EXPORT const unsigned char TheFrameworkVersionString[];
#endif

L'inclusion de Cocoa.h importe Foundation. Pour éviter d'inclure Foundation, modifiez TheFramework.h pour le laisser vide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X