Wyłącz automatyczne liczenie referencji dla niektórych plików

Pobrałem iOS 5 SDK i okazało się, że ARC jest świetną cechą nowego kompilatora Apple. Na razie wiele frameworków innych firm nie obsługuje ARC. Czy mogę użyć ARC dla mojego nowego kodu i zachować bieżący kod zachowania / Wydania bez zmian? Konwerter ARC nie działa tutaj, ponieważ niektóre frameworki, takie jak JSONKit, nie mogą być przekonwertowane do ARC za pomocą konwertera.

Edit:

Odpowiedzią jest dodanie -fno-objc-arc do flag kompilatora dla plików, których nie chcesz ARC. W Xcode 4, można to zrobić pod docelowym - > fazy budowania - > skompilować źródła.

Author: Josh Caswell, 2011-06-23

4 answers

Publiczne dokumenty ARC , choć nie są jasne w tej kwestii, wydają się sugerować, że tak długo, jak każda klasa jest albo cała Arc, albo wszystkie zarządzane ręcznie, klasy mogą być zintegrowane w JEDEN program.

Nie można mieszać ARC i non-ARC w jednej klasie; dokument mówi, że wysyłanie retain, release, autorelease, lub retainCount wiadomości w dowolny sposób (w tym timery i opóźnione wykonania, które używają @selector) są zakazane w kodzie ARC. Więc nie można zrobić nie-ARC w klasie ARC (ponieważ konieczne wiadomości są zbanowane) i nie można wykonywać ARC w klasie innej niż ARC (ponieważ ARC dodaje elementy składni, które są nieprawidłowe bez ARC).

Ten sam dokument jest nieco jaśniejszy, czy można zintegrować biblioteki/frameworki spoza ARC do programu ARC: tak. Nie wspomina, czy możesz używać bibliotek/frameworków ARC w programie, w którym cały Twój kod nie jest Arc, ale biorąc pod uwagę wszystkie powyższe sugestie, wydaje się, że tak.

 73
Author: Peter Hosey,
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
2011-06-23 05:11:11

To nie jest bardzo intuicyjne, jak wyłączyć ARC na Wielu plików, przez chwilę robiłem to jeden po drugim, aż zorientowałem się, jak to zrobić.

  1. Wybierz żądane pliki w fazie docelowej / kompilacji / kompilacji źródeł w Xcode (CMD+click lub Shift+click)
  2. naciśnij ENTER (podwójne kliknięcie spowoduje zresetowanie zaznaczenia, więc nie zadziała)
  3. Type - fno-objc-arc
  4. naciśnij Enter lub gotowe
 77
Author: Tibidabo,
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-04-25 11:35:49

Jeśli chcesz wyłączyć automatyczne liczenie referencji dla niektórych plików, to naprawdę proste do zrobienia, po prostu wykonaj kroki.Dodajesz flagi kompilatora w Targets - > Build Phases - > Compile Sources.

xcode

Używana flaga to -fno-objc-arc naciśnij enter po jej zapisaniu.! Musisz dwukrotnie kliknąć na prawej kolumnie wiersza pod flagami kompilatora. Mam nadzieję, że pomoże dzięki:)

 35
Author: Nikhil Bansal,
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-02 07:05:39

Możliwe jest wyłączenie ARC dla poszczególnych plików przez dodanie flagi kompilatora-fno-objc-arc dla tych plików.

Jak mogę wyłączyć ARC dla pojedynczego pliku w projekcie?

 2
Author: Naveen,
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 12:24:59