Doppelte Interface Deklaration für Klasse 'Foo'
War ich arbeiten auf meinem Programm, und es scheint etwas in den Einstellungen geändert. Plötzlich habe ich den Fehler "Duplicate interface-Deklaration für die Klasse 'Foo'". Es wird eine header-Datei wird dupliziert, sondern es nur eine Kopie.
Interessanterweise ist dies nur geschieht, im debug-Modus, nicht im device-Modus.
Hat jemand eine Idee, was falsch sein könnte?
Bin ich mit Objective-C++ und einigen statischen Bibliotheken.
InformationsquelleAutor der Frage John Smith | 2010-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte genau das gleiche problem. Ich hatte zwei Kopien der header und gelöscht hatte die alte durch löschen der Referenz um es in xcode. Es war dann nur ein Verweis auf die header, die spitz auf die neue header-Datei im Projekt-navigator.
Nach dem löschen tatsächlich der alte header aus dem Dateisystem, das problem ging Weg.
Könnte es ein bug in xcode. Vielleicht manchmal, wenn Sie löschen einen Verweis auf eine Datei, einen Teil der Referenz bleibt immer noch in der Projekt-Datei.
InformationsquelleAutor der Antwort RohinNZ
Habe ich diese Fehlermeldung und ich weiß nicht, die haben das doppelte header oder doppelte Importe. Das problem ist, dass ich schon umbenannt in die header-Datei und Xcode irgendwie halten, Cache, gibt, dass die build-Fehler.
Habe ich Folgendes, um dieses Problem zu beheben. Hoffe es hilft denen, die bereits versucht, andere Antwort und immer noch der Fehler.
InformationsquelleAutor der Antwort Andy
Habe das problem gefunden. Es wurden zwei Kopien der header-Datei und XCode verwirrt.
Nun das Geheimnis ist, wie XCode entschieden, kopieren Sie diese Dateien von selbst ...
InformationsquelleAutor der Antwort John Smith
Ich hatte ein ähnliches problem, jedoch hatte ich nicht zwei Kopien der Quelldateien. In meinem Fall hatte ich folgende situation:
Klasse A gab den oben genannten Fehler und Klasse B hatten eine Eigenschaft mit dem Klasse-A-Typ.
Das problem war, dass in der Klasse B, die ich rief #import "Klasse A" in beiden .h und die .m-Datei. Dies verursacht das oben erwähnte problem in meinem Fall. Hoffe, dies hilft jemand.
InformationsquelleAutor der Antwort Guy
Wechselte ich von "#include" "#import" in allen Datei-Header, und es hat das problem gelöst. Ich nehme an, dass wenn du "#include" - Datei, Sie brauchen, um zu schreiben Ihre eigenen Wachen gegen mehrere Einschlüsse, während XCode erledigt für Sie, wenn Sie verwenden "#import".
InformationsquelleAutor der Antwort RoyGal
Für mich dieses Problem wurde verursacht, wenn ich war die Migration zu
use_frameworks!
auf Cocoapods. Ich war den Import einen kopfball von der FBSDKCoreKit in einem Komfort-Klasse, die ich verwendet, um zu erweitern, die Methoden. Das war fein, bis ich eingeschaltet, um frameworks verwenden, wenn Sie ein lokales umfasst (#import "FBSDKAccessToken.h"
) ist nicht mehr OK, ich hatte nach dem wechseln der globalen umfasst (#import <FBSDKCoreKit/FBSDKAccessToken.h>
). Dieser Artikel beschreiben, warum Sie keine Kopfzeilen in Ihrer bridging-Datei mehr wies mich in die richtige Richtung.InformationsquelleAutor der Antwort Scott Fister
Mein problem war Folgendes. Ich fügte hinzu, pop-Animations-framework für mein Projekt aber mit xcodeproj statt xcworkspace.
Nach der Konfiguration konnte ich bauen, pop-iso-framework Ziel, aber ich war nicht in der Lage zu bauen meine app Ziel. Später wurde mir klar, dass Xcode Hinzugefügt pop-Klassen Build-Phasen -> Kompilieren Sie die Quellen meiner app Ziel. Löschen Sie alle pop-Klassen gibt es das problem behoben.
InformationsquelleAutor der Antwort Josip B.
Dieser Fehler tritt auf, weil des Gebens gleiche Variablennamen für verschiedene Objekte. Dies ist die Fehler kommen nach Xcode7.0. So überwinden dieses Problem nur Gehen Sie zu Bauen, Einstellung und Suche für Keine Gemeinsamen Blöcke und legen Sie es KEINE.
- Und wieder aufbauen, bekommen Sie nicht diesen Fehler wieder.
CheersKP
InformationsquelleAutor der Antwort Kalpesh Panchasara
Ich hatte auch genau dieses Problem, während die Archivierung ein Arbeitsbereich mit einer Vielzahl von selbst erstellten statischen Bibliotheken. Das Projekt bauen würde, Ordnung und laufen auf dem simulator, aber wenn ich versuchte, 'Archiv' der build für ad-hoc-Tests, die ich erhalten würde, diese doppelte definition der Schnittstelle Fehler. Die Auflösung war für mich, stellen Sie sicher, dass der "Copy Headers" - phase war richtig angibt, die öffentliche/Projekt/private-Header. Ich hatte eine header-Datei, die war auf 'Projekt' irrtümlich. Es benötigt, um "öffentlich", und nachdem das Archiv erfolgreich erstellt wurde.
InformationsquelleAutor der Antwort TPoschel
Hatte dasselbe Problem, mir schien, ich hatte zu viel Klasse.m Dateien in meinem Projekt.pbxproj-Datei.
Immer wieder diese Datei vor dem Bearbeiten nur für den Fall!
InformationsquelleAutor der Antwort Tim
Ich hatte dieses Problem bei der Verwendung von zwei Versionen a-h A. m-Dateien, die jeweils für unterschiedliche Zielgruppen. Also ich habe zwei Ordner (physische Verzeichnisse) und hielt jedes a-h und A. m in separaten Ordner. Dann fügte Ordner, um das erforderliche Ziel. Gelöst ist das Problem für mich.
Etwas aus dem Zusammenhang, aber könnte helfen. !!
InformationsquelleAutor der Antwort NaXir
In meinem Fall, das problem kam von einer Zusammenführung von in-Dateien aus einem anderen Projekt wiederverwenden. Ich war nicht vorsichtig, um "Kopieren von Dateien, wenn nötig" in das Dialogfeld "kopieren", und anstatt neue Kopien in das neue Projekt bezog er sich auf die Dateien in dem ursprünglichen Projekt. Einmal habe ich entfernt, die Referenzen und re-kopiert die Dateien einwandfrei, alles war OK.
InformationsquelleAutor der Antwort Casey Perkins
Ich hatte das gleiche problem mit der Erstellung eines framework. Die "alten definition ist hier der" Fehler deutete auf genau den gleichen header-Datei und die Zeilennummer als das original "doppelte definition der Schnittstelle für die Klasse" Fehler. Keine der oben gearbeitet, und es wurden keine Fehler im code. Ich habe eine Spotlight-Suche für die Verwicklung der Kopf, und zwei Kopien zeigte sich: die eine, die ich erwartet hatte, und ein weiteres in build/Debug-iphonesimulator/include. Ich habe eine sauber und dann manuell gelöscht, das build-Verzeichnis. Das problem ging Weg.
InformationsquelleAutor der Antwort Michael Domino