Matthias Wessendorf's Weblog

A blog on JSF, Ajax, Web 2.0 and other (interesting) things

Disabling the ARC in Xcode 4.2

With Xcode 4.2 (iOS 5) Apple introduce ARC (Automatic Reference Counting) to help with memory management. Basically you no longer need to call retain or release. However current examples/books (and (open source) libraries) are still doing it. This leads to (annoying) errors like:

ARC forbids explicit message send of ‘retain’

To get rid of this error you need to disable ARC, but how? I found this link which show how to disable it for cetain source files, but I wanted this to be a global setting.

My Kaazing colleague Richard Clark told me how to turn off ARC at the project level. Here is what you need to do in Xcode:

  1. Select your project file.
  2. You should be in the “Build settings” tab. Select the “levels” option (default is “Combined”)
  3. There’s a search field to the right of “Combined”. Enter “Automatic”
  4. Second group should be “Apple LLVM Compiler 3.0 – Language”. Second line under that controls ARC.
  5. Click that line, then in the middle column (where it says “yes”), click and choose “no”.
Now the error is gone. Great!
Thanks Richard :-)
Advertisement

12 Responses to Disabling the ARC in Xcode 4.2

  1. susuquay October 14, 2011 at 04:53

    Matthias, i have same problem. Try to do the same but same error still. I am still trying you have any advice for me, i appreciate!

  2. David October 16, 2011 at 11:28

    Thanks Matthias all the way from Sydney Australia!

  3. anewzealander October 22, 2011 at 02:44

    Thanks also from Pyrmont, Sydney Australia also :D

  4. myrhillion (@myrhillion) November 11, 2011 at 14:16

    ran into the reverse problem, had set it to off at the project start and needed it on for the objective-c big nerd ranch book. This also helped me figure out how to enable, so thanks for posting this, much appreciated.

  5. Keith November 17, 2011 at 14:05

    Thank you! I’m reading Cocoa and Objective C “Up and Running” It’s funny how quick printed material becomes outdated.

  6. olaf November 18, 2011 at 19:41

    Very USEFULL!!!!!. . .TNX

  7. Caner November 21, 2011 at 13:02

    Thanks. Although ARC is a great feature, old tutorials or classes (like CocoaAsyncSocket) do not work with it.

  8. lehtu November 30, 2011 at 08:58

    Thanks from finland too!

  9. Chris Norton (@xtophr) December 19, 2011 at 17:26

    Thanks from Marlborough Connecticut, USA!

    This was a big headache this morning. Got it solved with your help. Thanks!

  10. Jason K. January 4, 2012 at 14:09

    Excellent! Worked like a charm! Thank you!

  11. Donovan Tierra February 23, 2012 at 07:19

    Thanks from the lowest-paid in IT, Philippines! :(

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.