Jak Mogę wyłączyć ARC dla pojedynczego pliku w projekcie?
Korzystam z ARC z powodzeniem w moim projekcie. Jednak natknąłem się na kilka plików (np. w testach jednostkowych i mockach obiektów), w których zasady ARC są teraz nieco bardziej kruche. Pamiętam, że słyszałem, że był sposób, aby wyłączyć ARC na podstawie pliku, choć nie byłem w stanie znaleźć tej opcji.
Czy to możliwe? Jak wyłączyć ARC dla poszczególnych plików?
18 answers
Możliwe jest wyłączenie ARC dla poszczególnych plików poprzez dodanie znacznika kompilatora -fno-objc-arc
dla tych plików.
Dodajesz flagi kompilatora w Targets - > Build Phases - > Compile Sources. Musisz dwukrotnie kliknąć na prawej kolumnie wiersza pod flagi kompilatora . Możesz również dodać go do wielu plików, przytrzymując przycisk cmd, aby wybrać pliki, a następnie naciskając klawisz enter, aby wyświetlić pole edycji flagi. (Zauważ, że edycja wielu plików nadpisze wszelkie flagi, które mogą już mam.)
Stworzyłem przykładowy projekt, który ma przykład: https://github.com/jaminguy/NoArc
Zobacz tę odpowiedź, aby uzyskać więcej informacji: wyłącz automatyczne zliczanie referencji dla niektórych plików
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:16
Wyłączanie ARC na wielu plikach:
- Wybierz żądane pliki w fazie docelowej / kompilacji / kompilacji źródeł w Xcode
- NACIÅšNIJ ENTER
- Type - fno-objc-arc
- Naciśnij Enter lub gotowe
;)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-06 01:57:37
Dla Xcode 4.3 łatwiejszym sposobem może być: Edycja / Refactor / Konwertuj do objective-C ARC, a następnie odszukaj pliki, których nie chcesz przekonwertować. Uważam to za to samo, co użycie powyższej flagi kompilatora.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-18 22:28:26
Jest to bardzo prosty sposób, aby pojedynczy plik nie był arc.
Wykonaj poniższe kroki:
Wyłączanie ARC na pojedynczym pliku:
-
Wybierz żądane pliki w fazie docelowej / kompilacji / kompilacji źródeł w Xcode
Wybierz .m plik, który chcesz zrobić to nie-ARC NACIŚNIJ ENTER Type - fno-objc-arc
Non Arc file to Arc project flag : -fno-objc-arc
Plik ARC do flagi Projektu non ARC : -fobjc-arc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-12 17:39:59
Uwaga: Jeśli chcesz wyłączyć ARC dla wielu plików , Musisz:
- open "Build phases" - > "Compile sources"
- Wybierz pliki z "left_mouse" + " cmd " (dla oddzielonych plików) lub + "shift" (dla plików zgrupowanych-wybierz pierwszy i ostatni)
- naciśnij "enter"
- wklej
-fno-objc-arc
- naciśnij ponownie "enter" Zysk!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-26 07:16:56
Wystarczy użyć flagi -fno-objc-arc
W Build Phases
>Compile Sources
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-04 12:57:32
- Wybierz projekt Xcode
- Idź do celów
- wybierz sekcjÄ™ fazy budowania
- wewnątrz sekcji fazy budowania wybierz źródła kompilacji.
- Wybierz plik, którego nie chcesz wyłączyć ARC i dodaj -fno-objc-arc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-20 09:03:57
Możliwe jest wyłączenie ARC (automatycznego zliczania referencji) dla konkretnego pliku w Xcode.
Wybierz cel - > fazy budowania - > Skompiluj Źródła - > Wybierz plik (podwójne kliknięcie) - > Dodaj "-fno-objc-arc" do wyskakującego okna.
Spotkałem się z taką sytuacją w używaniu plików "Reachibility".
Jest to pokazane na poniższym rysunku:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-20 14:24:34
Use-fno-objc-arc dla każdego pliku w fazie budowania
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 10:24:05
Cztery obowiązkowe kroki, jak wyjaśniono w tym wideo
//1. Select desired files
//2. Target/Build Phases/Compile Sources
//3. Type -fno-objc-arc
//4. Done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-21 19:16:31
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-02 15:08:18
Jeśli używasz Unity, nie musisz tego zmieniać w Xcode, możesz zastosować flagę kompilacji w metadanych dla określonych plików, bezpośrednio w Unity. Wystarczy wybrać je w panelu Projekt i zastosować z panelu Inspektora. Jest to niezbędne, jeśli planujesz korzystać z Cloud Build.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-18 21:37:55
Dodaj flagÄ™ "- fno-objc-arc".
Proste kroki : App>Targets>Build Phases>Compile Sources> add flag after class "- fno-objc-arc"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-10 14:25:41
Myślę, że wszystkie inne odpowiedzi wyjaśniają, jak wyłączyć MRC (Manual Reference Count) i włączyć ARC (Automatic Reference Count). Aby użyć MRC (Manual Reference Count) tzn. wyłączenie ARC(Automatic Reference Count) na wielu plikach:
- Wybierz żądane pliki w fazie docelowej / kompilacji / kompilacji źródeł w Xcode
- NACIÅšNIJ ENTER
- Type-fobjc-arc
- naciśnij Enter lub Gotowe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-30 10:46:36
Wystarczy użyć flagi-fno-objc-arc w fazie budowania>kompilacji źródeł przed plikami, do których nie chcesz stosować Arc.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-18 11:19:39
- Wybierz projekt -> cele -> fazy budowania - > źródła kompilatora
- Wybierz plik - > flagi kompilatora
- add-fno-objc-arc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-07 10:15:51
Przejdź do App -> następnie Targets -> Build Phases - > Compile Source
Teraz wybierz plik, w którym chcesz wyłączyć ARC
Wklej ten fragment "- fno-objc-arc " po wklejeniu naciśnij ENTER
W każdym pliku, w którym chcesz wyłączyć ARC.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-24 10:03:34
Następny krok, aby włączyć wyłączanie ARC
Wybierz projekt Xcode Przejdź do celów Wybierz sekcję fazy budowania W sekcji fazy budowania wybierz źródła kompilacji. Wybierz plik, którego nie chcesz wyłączyć ARC i dodaj -fno-objc-arc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-09 07:25:38