8
votes

I'm trying to compile using the LLVM GCC 4.0 compiler, and I get this error in multiple of my .m files: ARC forbids explicit message send of 'release' I've tried using -fno-objc-arc as a compiler flag but that returns the error: Unrecognized command line option "-fno-objc-arc".

How can I solve this?

2

2 Answers

45
votes

Simply remove all calls to -release. You're not allowed to call -release under ARC because the compiler will insert all the necessary retain/release calls for you. Read more about ARC here.

The other way is to use the conversion tool, and Xcode can convert your project to ARC (including removing these calls) for you:

To disable ARC entirely, change your build settings:

However I'd recommend you start using ARC, it will make things a lot easier and actually faster too.

0
votes

If you happen to be using the ASI (http://allseeing-i.com/ASIHTTPRequest/How-to-use) api, refer to this answer as it needs to be built using -fno-obj-arc flags for specific classes... Files doesn't support the ARC feature, how to deal with and refer to the answer titled 'Disable ARC for that one class'