public
Last active

Don't be a fool and wonder why nothing is working... ADD THIS CHECK.

  • Download Gist
ARCCheck.m
Objective-C
1 2 3 4
// ARC is compatible with iOS 4.0 upwards, but you need at least Xcode 4.2 with Clang LLVM 3.0 to compile it.
#if !defined(__clang__) || __clang_major__ < 3 || !__has_feature(objc_arc)
#error This project must be compiled with ARC (Xcode 4.2+ with LLVM 3.0 and above)
#endif

Solid. Adding this to the Nimbus arc branch.

Cool! Note that usually !__has_feature(objc_arc) should be enough, other checks were added at a time w/o arc, when i had troubles with gcc. Not sure if they make sens, I don' t believe apple will ever add ARC-support to gcc.

The recommended idiom for checking features is:

#ifndef __has_feature         // Optional of course.
  #define __has_feature(x) 0  // Compatibility with non-clang compilers.
#endif

i.e., there’s no need to check for Clang specifically. Having done that, one can safely use __has_feature(), e.g.

#if !__has_feature(objc_arc)
  #error …
#endif

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.