web-dev-qa-db-fra.com

importation iOS de la classe Swift à partir de Swift à l'aide d'un cadre

Comment importer une classe Swift à partir d'un framework?

  1. J'ai l'espace de travail Xcode
  2. Je crée un cadre tactile Cocoa avec Swift
  3. Je crée une classe Swift nommée TestClass dans ce cadre tactile Cocoa 
  4. Je crée une application iOS à onglets 
  5. J'importe mon framework dans cette application iOS à onglets avec import FrameWorkTest

Le compilateur de projet d'application ne peut pas trouver TestClass. Comment puis-je importer TestClass pour l’utiliser dans l’application principale?

Il est dit que TestClass n'est pas défini. Je veux aussi ajouter une extension dans FrameWork puis l’utiliser.

https://github.com/ArtemKyslicyn/-SwiftImportFrameworkTest

J'utilise ce tutoriel http://www.Swift-studies.com/blog/2014/6/30/creating-a-pure-Swift-framework-for-both-ios- et-mac

Je suis sur la graine Xcode version 6.0 

Merci

12
Artem Kislitsyn

Voici une solution que j'ai trouvée:

  1. Créer un nouveau projet iOS 
  2. Appuyez sur le projet
  3. Appuyez sur + pour ajouter une cible
  4. Dans la fenêtre résultante, choisissez cocoa touch framework
  5. Appuyez sur project et appuyez sur add dependency et add framework
  6. Succès!

screenshot illustrating the success

J'ai utilisé la solution ici: https://github.com/ArtemKyslicyn/-SwiftImportFrameworkTest dans le projet nommé AddingFrameWork

3
Artem Kislitsyn

Rendre la classe en framework publique. De plus, toutes les variables doivent être publiques si vous voulez qu'elles soient utilisées en dehors du cadre.

public class MyClass... {
 ...
}
35
Alexander Volkov

@Artem Kislitsvn: J'ai vu votre référentiel github, 

Dans lequel vous avez le fichier TestClass.Swift en dehors des cibles 'test' et 'FrameWorkTest'. Ce qui est hors de la portée des espaces de noms. 

Dans Swift, les espaces de noms sont spécifiés par cible. Dans votre cas, "test" et "FrameWorkTest" sont deux cibles. Si vous conservez votre fichier en dehors des cibles, votre classe (le fichier .Swift ne sera visible à aucun moment).

La solution est très simple. Vous déplacez simplement votre fichier TestClass.Swift dans l’un des groupes cibles (glisser-déposer dans l’explorateur de projets). 

Suite à cela, votre projet fonctionne ...!

0

Pour importer une classe Swift à partir d'un framework:

Accédez à votre projet -> phases de construction -> sélection de la cible de test -> lien binaire avec bibliothèques -> bouton + -> ajout d'un autre élément (dans la boîte de dialogue) -> sélectionnez votre structure et félicitez-les!

Je laisse l'explication dans les images ci-dessous:

 enter image description here

 enter image description here

0
xavi.pedrals