To write and compile source code for ARC, you have to take care of a few things. Just by following the rules in the list below, you can write source code for an ARC-enabled environment with confidence.
Forget about using retain, release, retainCount, and autorelease.
Forget about using NSAllocateObject and NSDeallocateObject.
Follow the naming rule for methods related to object creation.
Forget about calling dealloc explicitly.
Use @autoreleasepool instead of NSAutoreleasePool.
Forget about using Zone (NSZone).
Object type variables can’t be members of struct or union in C language.
‘id’ and ‘void*’ have to be cast explicitly.
As described previously, the compiler doesn’t manage variables with the __unsafe_unretained ownership qualifier. You have to take care of ownership yourself to avoid a memory leak or the application will crash.
Conversely, __bridge_transfer cast will release the object just after the assignment is