2011-10-27 7 views
5
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. ¿Cuál es el propósito de esta estructura?
  2. ¿Qué significa la notación :1 al final de cada línea?
  3. ¿Cuál es el significado del modificador unsigned cuando no hay un tipo explícito?

Gracias¿Cuál es el propósito de la estructura flags en iOS?

+1

'unsigned' implica que' unsigned int' a menos que se especifique lo contrario. –

Respuesta

5

Esos son bitfields. Como la mayoría de estos son indicadores, solo tienen 2 valores posibles, por lo que no es necesario asignar más de 1 bit a cada campo. (con un par de excepciones en esa estructura)

unsigned puede ser independiente como un tipo. Es solo un unsigned int.

Cuestiones relacionadas