【问题标题】:What is the purpose of the flags struct in iOS?iOS 中 flags 结构的用途是什么?
【发布时间】:2011-12-16 04:43:04
【问题描述】:
struct
{
    unsigned resizesCellWidths:1;
    unsigned numColumns:6;
    unsigned separatorStyle:3;
    unsigned allowsSelection:1;
    unsigned backgroundViewExtendsUp:1;
    unsigned backgroundViewExtendsDown:1;
    unsigned usesPagedHorizontalScrolling:1;
    unsigned updating:1;
    unsigned ignoreTouchSelect:1;
    unsigned needsReload:1;
    unsigned allCellsNeedLayout:1;
    unsigned isRotating:1;
    unsigned clipsContentWidthToBounds:1;
    unsigned isAnimatingUpdates:1;
    unsigned requiresSelection:1;
    unsigned contentSizeFillsBounds:1;
    unsigned delegateWillDisplayCell:1;
    unsigned delegateWillSelectItem:1;
    unsigned delegateWillSelectItemMultiTouch:1;
    unsigned delegateWillDeselectItem:1;
    unsigned delegateDidSelectItem:1;
    unsigned delegateDidSelectItemMultiTouch:1;
    unsigned delegateDidDeselectItem:1;
    unsigned delegateGestureRecognizerActivated:1;
    unsigned delegateAdjustGridCellFrame:1;
    unsigned delegateDidEndUpdateAnimation:1;
    unsigned dataSourceGridCellSize:1;
    unsigned int isEditing:1;
    unsigned __RESERVED__:1;
} _flags;
  1. 这个结构的用途是什么?
  2. 每行末尾的 :1 表示法是什么意思?
  3. 没有显式类型时unsigned修饰符是什么意思?

谢谢

【问题讨论】:

  • unsigned 暗示为unsigned int,除非另有说明。

标签: c ios struct bitflags


【解决方案1】:

那些是bitfields。由于其中大部分是标志,它们只有 2 个可能的值,因此无需为每个字段分配超过 1 位。 (该结构中有几个例外)

unsigned 可以单独作为一个类型。这只是一个unsigned int

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2015-08-21
    • 2015-09-12
    • 1970-01-01
    • 2015-04-25
    • 2010-09-26
    • 2012-06-03
    相关资源
    最近更新 更多