Créer et importer swift cadre
Je suis nouveau dans swift de programmation.
J'ai besoin de créer un pur swift cadre et de l'importer dans mon pur swift projet.
Lorsque j'essaie d'importer swift cadre, j'obtiens cette erreur
message:
"Could not build Objective-C module '<myModule>'"
Test.h
import Foundation
public class Test {
class func printTest() {
println("111");
}
}
Asdf.h
import UIKit
public class Asdf: Test {
class func echo() {
println(888);
}
}
myModule-Swift.h
#ifndef <myModule>_<myModule>_Swift_h
#define <myModule>_<myModule>_Swift_h
#endif
Après framework, j'ai ajouté cadre de mon projet et obtenir ce
Ce que je fais mal? Merci Pour L'Aide!
@findall commentaire réponse -
J'ai essayé d'ajouter tous les fichiers du framework de mon dossier racine du projet et à l'intérieur le dossier du projet, mais encore une fois eu la même erreur
- Je veux savoir comment le faire parfaitement que, trop. Mais, il y a une solution à ce sujet. Non seulement ".cadre", ajoutez aussi le projet lui-même un cadre pour une utilisation à côté du projet de la hiérarchie. Après cela, tous les symboles publics dans le cadre de peut être vu à partir de l'utilisation de leur côté.
- J'ai essayé d'ajouter des fichiers (j'ai édité la question), mais de nouveau obtenir le même message d'erreur, pouvez-vous expliquer plus en détails?
- Pas de fichiers de le cadre, essayez d'ajouter une référence à la ".xcodeproj" du cadre
Project Navigator
. Si vous souhaitez déployer sur un périphérique réel, vous devez également ajouter ".cadre" àEmbedded Binaries
. - J'ai ajouté .xcodeproj dans mon projet, mais le problème n'est pas résolu
- Ok, s'il vous plaît laissez-moi vous expliquer les choses que j'ai fait étape par étape, comme une réponse. Je ne suis toujours pas bien anglais, donc j'espère que je ne vais pas vous confondre. (-_-;)
Vous devez vous connecter pour publier un commentaire.
J'ai fait avec les étapes suivantes.
Cocoa Touch Framework
être sélectionné)public func foo()
, à elle.Single View Application
)Project Navigator
.Target Dependencies
dans l'appBuild Phases
réglage.Embedded Binaries
dans l'appGeneral
réglage.Vous pouvez maintenant construire comme ce code dans l'utilisation du côté de l'app.
Dans Xcode 7.2 utilisation de Swift 2.1, j'ai réussi à obtenir au-delà de l'erreur mentionnée par faire en sorte que les paramètres de construction de votre pure Swift cadre appelé Foo sont comme suit:
1) Construire des Paramètres->Emballage->Définit Module = Oui
2) Construire des Paramètres->Swift Compilateur - Génération de Code->Installer Objective-C Compatibilité de l'en-Tête = Oui (si vous n'avez pas besoin d'importer de votre Swift cadre en Objective-C définissez ce paramètre à Pas)
3) Effacer la valeur de la chaîne de Construire Paramètres->Swift Compilateur - Génération de Code->Objective-C de Transition de l'en-Tête
4)Construire Paramètres->Swift Compilateur - Génération de Code->Objective-C Interface Généré Nom d'en-Tête = Foo-Swift.h (si vous n'avez pas besoin d'importer de votre Swift cadre en Objective-C effacer ce paramètre comme vous l'avez fait à l'étape 3))
5) assurez-vous que Construire Paramètres->Emballage->Nom de Produit = Foo
6) Ajouter à la public parapluie en-tête de votre cadre (Foo.h), que vous pouvez utiliser pour importer votre code Swift à Objective-C, la ligne suivante:
(mais si vous n'avez pas besoin d'importer de votre Swift code en objective-C, sautez cette étape)
6) Ajoutez la ligne suivante à la Swift fichier où vous souhaitez utiliser le module Foo:
Notes importantes:
1) Veiller à ce que votre parapluie en-tête de Toto.h est définie dans le Fichier Inspecteur, sinon cela ne fonctionnera pas.
2) Si vous utilisez votre pure Swift cadre de l'Objectif C fichiers, assurez-vous que:
les Foo-Swift.h la tête a généré la bonne interface Foo.h puis en cliquant sur le coin en haut à gauche du menu de Xcode éditeur de code, puis en choisissant Comprend->Foo-Swift.h (j'ai eu à reconstruire les Foo cadre à quelques reprises jusqu'à ce que Xcode rattrapé avec le changement et ensuite générés à l'interface correcte en Objective-C, de sorte que vous peut-être besoin d'en faire autant)
de votre swift classes héritent de NSObject ou ils ne seront pas disponibles pour Objectif de code C
En outre, pour les @jvarela réponse, en Xcode 9 et swift 4,
À l'importation Swift dans le cadre d'un Objectif C de projet, vous devez ajouter
marque à l'ensemble de vos classes, de méthodes et de variables que vous souhaitez exporter en Objective-C projet .
Par exemple,
Sur Swift:
Créer Un Cadre:-
Commencer Xcode -> Créer un nouveau Projet Xcode -> iOS -> Cadre & Bibliothèque -> Cocoa Touch Cadre -> Nom de la structure(ex. sampleCocoaFramework) -> Créer.
Ensemble Taget -> Général> Déploiement info -> Cible de Déploiement.
Ajouter une classe publique: Fichier -> Nouveau Fichier -> iOS -> Swift Fichier -> Nom (ex. openCocoaClass) -> Créer.
Maintenant ajouter un peu de code pour le openCocoaClass.swift.
}
Nettoyer le projet : Produit -> Nettoyer
Configurer les paramètres de jeu : Produit -> Système -> Modifier le Système -> Exécuter -> Configuration de Build -> Libération.
Construire le cadre : Produit -> Build.
Ajoutant Cadre du Projet:-
Démarrer un projet Xcode et le nom (ex. CocoaFrameworkTest).
Faites glisser et déposez les sampleCocoaFramework.cadre de la CocoaFrameworkTest du dossier de projet.
Cible -> Général> Intégrer les Binaires -> Ajouter d'Autres -> Select Cadre
-> Copier des Éléments si nécessaire -> Fait.
Accéder Cadre sur ViewController:-