How to Remove ARC in iPhone


ARC stands for Automated Reference Counting. Objective-C does not have a garbage collector; instead it uses the reference counting algorithm to manage the memory. This was the developer's task until Apple launched iOS 5.0. Again if you are targeting iOS 4.0 or earlier, ARC is not available to you.

ARC is a compiler-level feature that simplifies the process of managing the lifetimes of Objective-C objects. Instead of you having to remember when to retain or release an object, ARC evaluates the lifetime requirements of your objects and automatically inserts the appropriate method calls at compile time.

Reference Counting: In this algorithm every object keeps track of it owners (in other words reference variables from the program) . The number of owners is represented by the property retainCount declared in NSObject. If this retainCount goes to "0" the object is deallocated automatically. We never call a dealloc method on any object explicitly.

When we use old code in a new project and set the ARC option to enabled, then it shows an error. To remove it we use the following procedure.

Step 1


Here we set the checkbox to enable ARC.

Step 2


Here we see many errors due to ARC.

Step 3


Now we click on project.

Step 4


Select Build Phase and click on Compile Source.

Step 5


Here in Compile Source it shows 18 items.

Step 6


In each step we click on the Compiler Flag and write on it  -fno-objc-arc.

Step 7

Now we run our project; it doesn't show an error and works properly.