Frage

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. What is the purpose of this struct?
  2. What does the :1 notation at the end of each line signify?
  3. What is the meaning of unsigned modifier when there is no explicit type?

Thanks

War es hilfreich?

Lösung

Those are bitfields. Since most of these are flags, they only have 2 possible values, so there's no need to assign more than 1 bit to each field. (with a couple exceptions in that struct)

unsigned can stand alone as a type. It's just an unsigned int.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top