On Wed, Jun 29, 2011 at 15:36, David Chisnall
<theraven@sucs.org> wrote:
ARC does some quite nice things for you. For every assignment, the compiler will automatically insert calls to runtime functions that do the retain / release juggling for you. It will also implicitly add code to your objects freeing all instance variables. Because of this, some things are not allowed in ARC mode:
- Implementing -retain, -release, or -autorelease
- Calling -retain, -release, or -autorelease
- Storing object pointers that are not __unsafe_unretained qualified in structures.
If calling -retain, -release and -autorelease is not allowed, how is it possible to mix ARC with non-ARC code? Does the compiler throw a warning, an error, or the thing just silently doesn't work?
What happens when -retain, -release and -autorelease are overridden?
What happens when non-__unsafe_unretained pointers are stored in structure? Does it silently crash?
Are all pointers __strong by default? What happens with non-Objective-C pointers, such as results of SDL functions? Will I have any problems using SDL if ARC is used in same codebase?
--
Ivan Vučica