ARC und schwach IBOutlet Eigenschaften
Ich gerade aktualisiert ein Projekt, um die Verwendung von BOGEN mit dem Xcode 4.2 built-in-Konvertierungs-Werkzeug. Leider gibt es einen seltsamen Fehler erscheint, dass ich nicht verstehe und nicht nichts darüber finden. Ich habe ein Dokument der Klasse mit einem property-Deklaration:
@property (weak) IBOutlet WebView *webView;
In der Umsetzung-Datei ich habe ein @synthetisieren Aussage:
@synthesize webView=_webView;
Wenn ich versuche zu kompilieren, schlägt es fehl und sagt mir:
Fehler: @synthetisieren von 'schwach' - Eigenschaft ist nur dann zulässig, ARC oder GC
Modus
Natürlich das Projekt ist gekennzeichnet kompilieren mit ARC. Ich würde schätzen jede Hilfe, um zu verstehen, was ich falsch mache und warum.
Edit: War zu spät gestern. So, hier ist eine komplette compile-log:
[...] -fobjc-arc -Wno-trigraphs -fpascal-Saiten-O0 -Wmissing-prototypes -Wreturn-Typ -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value-Wshorten-64-32 -DDEBUG=1 -isysroot /Developer/SDKs/MacOSX10.7.sdk -fasm-blocks -mmacosx-version-min=10.7 -gdwarf-2 -Wno-sign-conversion "-DIBOutlet=Attribut((iboutlet))" "-DIBOutletCollection(ClassName)=Attribut((iboutletcollection(ClassName)))" "-DIBAction=void)Attribut((ibaction)" -iquote [...]/Build/Mittelstufe/[...].build/Debug/[...].bauen/[...]-generated-Dateien.hmap -ich[...]/Build/Mittelstufe/[...].build/Debug/[...].bauen/[...]-eigene-target-Header.hmap -ich[...]/Build/Mittelstufe/[...].build/Debug/[...].bauen/[...]-all-target-Header.hmap -iquote [...]/Build/Mittelstufe/[...].build/Debug/[...].bauen/[...]-Projekt-Header.hmap -ich[...]/Build/Products/Debug/include-I[...]/Build/Mittelstufe/[...].build/Debug/[...].bauen/DerivedSources/x86_64 -ich[...]/Build/Mittelstufe/[...].build/Debug/[...].bauen/DerivedSources -F[...]/Build/Products/Debug -fno-objc-arc [...]
Scheint es, die compiler-Einstellungen für das ARC eingeschaltet sind, in der anfangs-und ausgeschaltet, später wieder in der Argumente-Liste. Um ehrlich zu sein: ich weiß nicht, wo Sie zu entfernen, so seltsame Einstellungen und wie kam es zu diesem. Die einzige Lösung, die mir einfallen würde jetzt, wäre die komplette Projekt von einer leeren und neu ein und importieren Sie alle class-Dateien von Grund auf.
Wenn jemand kennt einen einfacheren Weg, würde ich sehr zu schätzen wissen.
PS: ich habe alle build-Einstellungen in Bezug auf die ARC JA eingestellt.
InformationsquelleAutor der Frage Jacque | 2011-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
In nur BOGEN wir verwenden
weak
Eigentum und ohne ARC haben wir die Verwendungunsafe_unretained
ist es dasselbe bedeutet, für BOGEN, die wir haben, zu verwendenund ohne ARC
InformationsquelleAutor der Antwort PeterParker
FYI: Für alle anderen plagten den "@synthetisieren von 'schwach' - Eigenschaft ist nur dann zulässig, BOGEN-oder GC-Modus die Fehlermeldung" Fehler:
Wenn Sie versucht haben, alle Lösungsvorschläge in diesem thread und es trotzdem nicht bauen, schließen Sie das Xcode-Projekt (Datei - > Projekt Schließen), dann öffnen Sie das Projekt erneut, und versuchen Sie, ein Gebäude wieder.
InformationsquelleAutor der Antwort heavenlyfodder
Für jemand anderen ausgeführt wird, wenn Sie umgebaut, Ihr Projekt in teilen zu ARC, stellen Sie sicher, Sie haben nicht die -nicht-obj-arc-flag auf die Dateien, die es beschweren.
InformationsquelleAutor der Antwort migs647
Nahm ich etwas mehr Zeit heute und habe eine neue Umwandlung von einem vorherigen commit des Projekts. Dieses mal ging alles gut. Ich nehme an, dieser Fehler tauchte von mir aus versuchen, um die Konvertierung in 2 getrennten Schritten. Das Projekt gliedert sich in 2 Komponenten. Ich wollte konvertieren Sie Sie separat. Das ist, warum ich nicht wählen Sie alle Dateien, die während der ersten Konvertierung wird ausgeführt. Zu meinem Erstaunen die erste Umsetzung lief sehr schmerzfrei und in kürzerer Zeit als ich erwartet hatte. So habe ich beschlossen, konvertieren Sie die zweite Komponente des Projekts zu. Was ich am Ende mit, wurde der Stand des Projekts beschrieben, wie das problem oben: konfliktiver build-Einstellungen.
Einen guten Rat möglicherweise nicht zu versuchen, zu konvertieren, ein Projekt in Schritten, aber ein paar mehr Zeit und tun es auf einmal. Ich muss davon ausgehen: die conversion-Funktion von Xcode kann nicht gemeint sein für ein solches Verfahren.
InformationsquelleAutor der Antwort Jacque
Versuchen die Kennzeichnung explizit mit -fobjc-arc als compiler-flags in den Build-Phasen
InformationsquelleAutor der Antwort davis
In Fall, jemand stolpert über das:
Ich habe gerade das Problem gelöst, indem Sie "Objective-C Garbage Collection" zu "Nicht" in den Build-Einstellungen. Dies war JA für einige Grund, und das verursacht den BOGEN zu bauen, nicht zu arbeiten.
InformationsquelleAutor der Antwort DaGaMs
Ok, nur falls jemand anders das gleiche Problem wie ich, ich war das hinzufügen von UI-Elemente-Eigenschaften unten das schließende "}" meiner @ - interface, anstatt von innen. Sobald ich Sie gelöscht, @property und @synthetisieren Einträge in die .h/.m-Dateien und re-verbunden mit der UI-Elemente innerhalb des @interface { } - Abschnitt, es funktionierte.
InformationsquelleAutor der Antwort Scott Marchant
In meinem Fall fand ich, dass die änderung der Build-Einstellung "- Compiler für C/C++/Objective-C" in der Kategorie "Build-Optionen", um die Standard - ("Apple LLVM compiler 3.0") hat dieses Problem behoben.
Hatte es auf "LLVM-GCC-4.2", und weiter unten, unter der Kategorie '... complier 3.0 - Sprache", die option zu wählen, ARC ("Objektive-C Automatic Reference Counting") war nicht einmal sichtbar.
Dies war besonders Bizarr, weil ich ein anderes Projekt vorher umgewandelt zu BOGEN zu, und während Sie mit dem ausgewählten compiler war auch "LLVM-GCC-4.2", dennoch ist die 'Sprache' - Kategorie war noch mit dem Titel "Apple LLVM compiler 3.0', und die option ARC zu sehen war.
Gleichen compiler ausgewählt, noch verschiedene Optionen angeboten, die compiler. Komisch.
InformationsquelleAutor der Antwort SteveCaine
Stieß ich auch auf das gleiche problem. Der Fehler den ich beging war, dass in der Build-Phasen-> Quellen Kompilieren ich habe die Flagge eines nicht ARC-Datei "-fno-objc-arc". Ich wollte, es Hinzugefügt, um ein nicht ARC-Datei. Ich entfernte es und es begann richtig.
InformationsquelleAutor der Antwort Abhishek Kumar