Support both ARC and non-ARC

Add some #define to support both ARC and non-ARC