iOS中的__gm_weak意味着什么?

时间:2012-08-29 04:33:11

标签: objective-c ios ipad

@interface Demo2ViewController () <GMGridViewDataSource, GMGridViewSortingDelegate, GMGridViewTransformationDelegate>
{
    __gm_weak GMGridView *_gmGridView1;
    __gm_weak GMGridView *_gmGridView2;

    __gm_weak UIButton *_buttonOptionsGrid1;
    __gm_weak UIButton *_buttonOptionsGrid2;

    UIPopoverController *_popOverController;
    UIViewController *_optionsController1;
    UIViewController *_optionsController2;
}

试用GMGridview,看到了这个__gm_weak GMGridView * _gmGridView1;。任何人都知道__gm_weak是什么意思,你什么时候使用__?提前谢谢。

1 个答案:

答案 0 :(得分:4)

这些声明并不常见,它们在GMGridView源中定义:

//
// ARC on iOS 4 and 5
//

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_5_0 && !defined (GM_DONT_USE_ARC_WEAK_FEATURE)
#define __gm_weak __weak
#else
#define __gm_weak __unsafe_unretained
#endif

就双下划线用法而言,我建议反对它。只考虑它为实现保留(例如工具链)并使用普通标识符。