2011-10-27 19 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. 這個結構的目的是什麼?
  2. 每行末尾的:1表示法意味着什麼?
  3. unsigned修飾符在沒有顯式類型時是什麼意思?

感謝iOS中的標誌結構的目的是什麼?

+1

除非另有說明,'unsigned'暗示爲'unsigned int'。 –

回答

5

這些都是bitfields。由於其中大部分是標誌,因此它們只有2個可能的值,所以不需要爲每個字段分配多於1位的值。 (在該結構中有幾個例外)

unsigned可以單獨作爲一種類型。這只是一個unsigned int