Skip to content

Instantly share code, notes, and snippets.

@Coeur
Forked from nicklockwood/ARCHelper.h
Created October 11, 2012 08:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Coeur/3870888 to your computer and use it in GitHub Desktop.
Save Coeur/3870888 to your computer and use it in GitHub Desktop.
ARC Helper
//
// ARC Helper
//
// Version 2.1
//
// Created by Nick Lockwood on 05/01/2012.
// Copyright 2012 Charcoal Design
//
// Distributed under the permissive zlib license
// Get the latest version from here:
//
// https://gist.github.com/1563325
//
#ifndef ah_retain
#if __has_feature(objc_arc)
#define ah_retain self
#define ah_release self
#define ah_dealloc self
#define autorelease self
#else
#define ah_retain retain
#define ah_release release
#define ah_dealloc dealloc
#define __bridge
#define __bridge_retained
#define __bridge_transfer
#endif
#endif
// Weak reference support
#import <Availability.h>
#if (!__has_feature(objc_arc)) || \
(defined __IPHONE_OS_VERSION_MIN_REQUIRED && \
__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0) || \
(defined __MAC_OS_X_VERSION_MIN_REQUIRED && \
__MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_7)
#undef weak
#define weak unsafe_unretained
#undef __weak
#define __weak __unsafe_unretained
#endif
// Weak delegate support
#ifndef ah_weak
#import <Availability.h>
#if (__has_feature(objc_arc)) && \
((defined __IPHONE_OS_VERSION_MIN_REQUIRED && \
__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_5_0) || \
(defined __MAC_OS_X_VERSION_MIN_REQUIRED && \
__MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_7))
#define ah_weak weak
#define __ah_weak __weak
#else
#define ah_weak unsafe_unretained
#define __ah_weak __unsafe_unretained
#endif
#endif
// ARC Helper ends
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment