On Tue, 04 Feb 2014 14:31:13 -0500, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

On 2/4/14, 11:28 AM, Steven Schveighoffer wrote:
Where you have to be cognizant is avoiding cycles. Plain and simple. And
it's not that difficult.

Do you have evidence to back that up?

Does personal experience count? I can say that the main project I have worked on in Objective-C uses manual reference counting, and when I have done newer, but shorter/smaller, projects in ARC, it is much much easier to deal with. Maybe my point of reference is tainted :)

If you use xcode to add member variables, it usually chooses the correct attributes for them (weak or not).

But the code the compiler generates for ARC is pretty good. It has quirky rules for naming methods and how you have to return objects (either autorelease or retained), and will not let you do the wrong thing. You also can't do ANY manual memory management in ARC code, it fails to compile.

Trickier aspects are dealing with C structs, which are NOT reference counted, so you have to deal with those manually using malloc/free (not really different from D).

I will say that it really helps to have an understanding of how ARC is actually implemented in the compiler (that is, the process it goes through to add/elide reference increments and decrements).

-Steve

Reply via email to