-
-
Save wangmingfu/4112538 to your computer and use it in GitHub Desktop.
ARCMacro.h: Enables compilation both in ARC and non-ARC
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* ARCMacro.h 1.1 2012/05/29 https://gist.github.com/2823399 | |
* | |
* ARCMacro.h realizes coexistence of both the ARC (Automatic | |
* Reference Counting) mode and the Non-ARC mode of Objective-C | |
* in the same source code. This macro works for iOS and Mac OS X. | |
* | |
* This is a by-product of joint research by AIST and The University of Ryukyu. | |
* HIRANO Satoshi (AIST), NAKAMURA Morikazu (U. Ryukyu) and GUAN Senlin (U. Ryukyu) | |
* | |
* Author: HIRANO Satoshi (AIST, Japan) on 2011/11/14 | |
* Copyright 2011-2012 National Institute of Advanced Industrial Science | |
* and Technology (AIST), Japan. Apache License 2.0. | |
* | |
* Usage: | |
* #import "ARCMacro.h" | |
* [o1 RETAIN]; | |
* o2 = [[o3 RETAIN] AUTORELEASE]; | |
* [super DEALLOC]; | |
*/ | |
#if __has_feature(objc_arc) | |
#define RETAIN self | |
#define AUTORELEASE self | |
#define RELEASE self | |
#define DEALLOC self | |
#else | |
#define RETAIN retain | |
#define AUTORELEASE autorelease | |
#define RELEASE release | |
#define DEALLOC dealloc | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
ifndef MB_STRONG
if __has_feature(objc_arc)
else
endif
endif
ifndef MB_WEAK
if __has_feature(objc_arc_weak)
elif __has_feature(objc_arc)
else
endif
endif
if NS_BLOCKS_AVAILABLE
typedef void (^G7UIProgressHUDCompletionBlock)();
endif
if __has_feature(objc_arc)
else
endif
if !__has_feature(objc_arc)
if NS_BLOCKS_AVAILABLE
endif
endif