2016-05-10 7 views
5

Project structureNicht in der Lage durch Rahmen öffentliche swift Klasse zuzugreifen

habe ich ein Projekt und importierte sie in diesem Rahmen. Wenn ich dieses Framework in eine Demo-App lade, kann ich auf die öffentliche Klasse MyTest innerhalb der Datei MyTest.swift zugreifen, aber nicht auf die öffentliche Klasse innerhalb von MessagesViewController.swift zugreifen. Fehle ich etwas? Können wir nicht über ein Framework auf Dateien innerhalb eines Projekts zugreifen?

+0

Importieren Sie das 'FireChat-Swift'-Modul? – redent84

+0

Können Sie weitere Informationen bereitstellen, z. B. Fehler, die beim Kompilieren auftreten. Warum verschachteln Sie Xcode-Projekte? Es sieht so aus, als wäre Ihre Test-App FireChat ist Ihr Framework? Ich würde sagen, dass Ihre Projektstruktur durcheinander ist, aber ich brauche mehr Details, um sicher zu gehen. –

Antwort

2

Umstrukturieren Sie Ihren Projektraum so, dass Sie Ihre Anwendung nicht in Ihrem Framework haben, und lösen Sie dann die Verbindungsdateien zwischen der App und dem Framework.

  1. Erstellen Sie eine xcworkspace-Datei, die alle Ihre Unterprojekte enthält. Für weitere Informationen besuchen Sie den Xcode Workspace Abschnitt im Xcode Concepts Dokument

enter image description here

  1. öffnen Sie die Arbeitsbereich-Datei und fügen Sie Ihren Rahmen und App-Projekte durch die xcodeproj Dateien ziehen zu das Fenster "Projektnavigation". Seien Sie vorsichtig beim Hinzufügen der Dateien als Xcode als eine Tendenz, ein Projekt in ein anderes zu platzieren, das wollen Sie nicht.

  2. Erstellen Sie Ihr Framework und verknüpfen Sie es dann mit dem App-Projekt. Dadurch werden alle Framework-Dateien für Ihr App-Projekt verfügbar, solange sie öffentlich sind (weitere Informationen finden Sie weiter unten). Navigieren Sie in der Editoransicht zum FireChat-Swift-App-Projektziel, und öffnen Sie das Produktverzeichnis aus dem Frameworks-Projekt, und ziehen Sie die Framework-Datei in den Bereich Embedded Binaries des allgemeinen Registers.

enter image description here

  1. Jetzt Ihr Rahmen mit Ihrem App-Projekt verknüpft ist. Sie müssen Ihr Framework in den Quellcode Ihrer App importieren.

  2. Fügen Sie neue Dateien zu Ihrem Framework hinzu und denken Sie daran, dass sie öffentlich sein müssen, wenn Sie sie außerhalb des Frameworks - also Ihrer App - benötigen.

2

Haben Sie MessagesViewController.swift zum Target innerhalb des ursprünglichen Projekts hinzugefügt?

Um es zu überprüfen, öffnen Sie einfach das ursprüngliche Projekt, wählen Sie MessagesViewController.swift und werfen Sie einen Blick auf die rechte Seitenleiste (Ziel Mitgliedschaft).

+0

so primitiv, aber doch so mächtig. Aktivieren und deaktivieren Sie einfach die Zielmitgliedschaft einer Datei und es wird den Zweck erfüllen :) – denis631

Verwandte Themen