In X-Code, wenn ich ein neues Projekt mit automatischer Referenzzählung (ARC) erzeuge, und ein bestehendes Nicht-ARC-Projekt über Datei -> Dateien hinzufügen hinzufügen (wird berücksichtigt) Hinzufügen zum Arbeitsbereich? Nicht sicher über den Arbeitsbereich Begriff), würde das funktionieren? Also kann der neue Code, den ich in diesem Projekt schreibe, ein ARC-Code sein?Ein Projekt ohne ARC in ein Projekt mit ARC einfügen
Wenn Sie ein Projekt auf diese Weise hinzufügen, werden die Dateien nicht in den "kompilierten Quellen" aufgelistet. daher habe ich nichts "-fno-objc-arc" anzusetzen.
Ich stelle fest, dass MapBox-ios-Beispiel scheint dies zu tun. Fügst du es einfach rein und denkst nicht darüber nach?
Eine separate Frage ist, was passiert, wenn es sich um eine nicht-ARC statische Bibliothek (.a) handelt, die ich mit meinem ARC-Projekt verlinke? Muss ich etwas Besonderes mit den Klassen in der Nicht-ARC-Bibliothek tun?
EDIT: Hallo Entschuldigung für die späte Antwort.
Fast alle von euch antworteten ziemlich gut auf meine zweite Frage, ich danke Ihnen allen dafür. Da Nverinaud der Erste ist, der diese Frage beantwortet, lerne ich, ihm den Kredit zu geben. (Es scheint ein Zeitlimit für die Vergabe der Prämie zu geben? Wenn die Antworten sie sind, würde ich nverinaud den Kredit geben wollen.)
Allerdings habe ich noch Zweifel an meiner ersten Frage. Ich füge eine nicht-ARC- "Projektdatei" selbst in mein aktuelles ARC-Projekt ein, entsprechend den Mapbox-Beispielen und Anweisungen. Ich muss betonen, dass ich die Quelldateien (.m .c) NICHT einzeln in das Projekt einfüge, sondern die Projektdatei hinzufüge. Die .m und .c scheint in einem separaten Projekt in einem separaten Ordner zu sein. Und dieses Mapbox-Projekt hat Aufrufe wie [view release] und ich BENÖTIGE das spezielle Flag -fno-objc-arc nicht, um die Warnungen stummzuschalten, weil die Warnungen nicht vorhanden sind.
Ich verstehe, dass normalerweise, wenn Sie eine Nicht-ARC-Quelldateien in Ihr ARC-Projekt hinzufügen, Sie Compiler-Warnung erhalten, die Sie die Compiler-Stufen nicht passieren lassen wird. Aber in meinem Fall bekomme ich keine. Meine Frage ist insbesondere nicht, wie man die Flagge setzt (was ich weiß), es ist, ob ich die Flagge brauche oder nicht (ich vermute ich nicht, ich könnte sogar Compiler-Warnung haben, wenn ich es einlege? Ich habe es nicht versucht.) Denn ohne die Flagge gibt es keine Warnung. Und ich frage nach einer Erklärung, warum es keine Warnung gab und ob ich die Dinge richtig mache.
Hier ist ein Screenshot. . OfflineSpotty ist die ARC-Datei, die ich erstellt habe. MapView.xcodeproj ist das Nicht-ARC-Projekt, das ich hinzugefügt habe. Hoffentlich verdeutlicht das Bild die Dinge ein wenig.
Um Ihre zweite Frage zu beantworten, ist ARC-Code binärkompatibel mit Nicht-ARC-Code, so dass Sie ohne ARC-Code mit ARC-Code (oder umgekehrt) ohne Probleme verwenden können. – zneak
Ich habe das gleiche Problem mit MapBox, wie hast du es gelöst? – Stephanie
Können Sie spezifisch sein, weil ich nicht sicher bin, auf welches Problem Sie sich beziehen. – huggie