Zdecydowanie uważam, że to jest dobre dla programistów, aby zrozumieć, jak zarządzanie pamięcią i system faktycznie działa ... ale myślę, że ARC jest bardzo dobry system i działa bardzo dobrze. To jest naprawdę pytanie poglądowe, więc moim zdaniem prawie zawsze warto rozpoczynać nowe projekty, które będą kierować reklamy na aplikacje systemu operacyjnego iOS 5 w ARC, z wyjątkiem bardzo szczególnych okoliczności.
Uważam, że jeśli używasz wielu bibliotek C w swoim kodzie, ARC jest nieco trudniejsze w użyciu (więc jeśli w większości korzystasz z bibliotek C innych firm i takich rzeczy jak CoreFoundation, może rozważyć, czy ma to sens, czy nie), ale nawet wtedy, jeśli te biblioteki są w większości odizolowane od kontrolerów Objective-C i takie, ARC jest nadal dobre.
W przypadku starszych aplikacji należy sprawdzić wykorzystanie aplikacji i jej wzorce. Jeśli używasz wielu metod delegowania, ponieważ nie możesz używać słabych referencji na iOS 4, staje się to nieco trudniejsze i prawdopodobnie będziesz musiał mieć mieszany kod ARC i kod spoza ARC. Być może lepiej jest podjąć decyzję projektową, aby przejść do przodu z ARC. Tak więc nowe funkcje są przeznaczone dla iOS 5 i być może nie są dostępne (lub w pełni dostępne) w wersji iOS 4 aplikacji, a te używają ARC.
Rzeczywiście, w ostatecznym rozrachunku będzie to zależeć od tego, jak aplikacja została już zaprojektowana, jak duża jest i jak wygodne jest zarządzanie zarządzanym pamięcią i użycie/ograniczenia ARC. Na przykład mam trzy projekty, których nigdy nie przekonwertowałbym na ARC, jeden, który teraz robię mieszane, taki, który jest w pełni przekonwertowany (ale nadal jest kierowany na iOS 4+) i 2, które są w pełni ARC i iOS 5+ tylko.
Proponuję, aby to pytanie było wpisane do wiki ... zdecydowanie jest to dobre pytanie i definitywnie związane z programowaniem, ale większość Pytanie brzmi naprawdę i odnosi się do konkretnych okoliczności. –
Zadajesz tutaj trzy różne pytania. Drugi jest objęty [iOS 5 Best Practice (Release/retain?)] (Http://stackoverflow.com/questions/6308425/ios-5-best-practice-release-retain), a trzeci przez [if convert projektu do automatycznego liczenia odwołań (ARC), czy nadal obsługuje on iOS 3.X, 4.X?] (http://stackoverflow.com/questions/6421753/if-convert-project-to-automatic-reference-countingarc -is-it-still-support-on) –