8#ifndef TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
9#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
11#import <Foundation/Foundation.h>
14#define CATCH_ARC_ENABLED __has_feature(objc_arc)
16#define CATCH_ARC_ENABLED 0
27 if( [obj respondsToSelector: sel] )
28 return [obj performSelector: sel];
31#define CATCH_UNSAFE_UNRETAINED
32#define CATCH_ARC_STRONG
37#pragma clang diagnostic push
38#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
40 if( [obj respondsToSelector: sel] )
41 return [obj performSelector: sel];
43#pragma clang diagnostic pop
47#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
48#define CATCH_ARC_STRONG __strong
void arcSafeRelease(NSObject *obj)
id performOptionalSelector(id obj, SEL sel)