1
@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 是什么意思,什么时候使用__?提前致谢。

4

1 回答 1

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

至于双下划线的用法,我建议不要这样做。只考虑它为实现(例如工具链)保留并使用普通标识符。

于 2012-08-29T04:55:15.107 回答