2012-06-11 5 views
5

UITableView.h에서 UITableView의 인터페이스 선언에 _tableFlags 구조체가 있습니다. 구조체의 멤버는 모두 unsigned int로 정의되지만 각 멤버의 제목 뒤에 콜론과 숫자가옵니다.UITableView.h의 ivar 구조체 _tableFlags의 구문은 무엇을 의미합니까?

struct { 
    unsigned int dataSourceNumberOfRowsInSection:1; 
    unsigned int dataSourceCellForRow:1; 

...

unsigned int longPressAutoscrollingActive:1; 
    unsigned int adjustsRowHeightsForSectionLocation:1; 
    unsigned int customSectionContentInsetSet:1; 
} _tableFlags; 

코코아는 헤더 파일에이 구문의 일반적인 사용을하는 경향이 있지만, 나는 더 무슨 뜻인지 단서 무엇을 그 기능이 없잖아요. 콜론과 회원 제목 뒤에 오는 숫자는 무엇을 의미합니까?

+3

는 비트 필드는 종종 위임에 respondsToSelector 반환 값을 캐시하는 데 사용됩니다. 여기를 참조하십시오 : http://macdevelopertips.com/c/bitfields-in-c.html 그리고 여기 : http://stackoverflow.com/questions/626898/how-do-i-create-delegates-in-objective-c "델리게이트가 메시지를 보내려고 할 때마다 델리게이트가 셀렉터에 응답하는지 여부를 확인하는 대신 델리게이트가 설정되면 정보를 캐싱 할 수 있습니다." – magma

답변

5

이들은 비트 필드입니다. 콜론 다음의 숫자는 변수가 구조에서 취하는 비트 수입니다.

도 참조 : how to declare an unsigned int in a C program 코코아

+2

아, 그래서 최소한의 양의 메모리가 struct에 의해 사용되도록하기 위해 비트 필드가 사용됩니까? BOOL이 signed char로 정의 되었기 때문에 BOOL이 사용되지 않았다고 가정하는 것이 맞을까요? – friedenberg

+0

@friedenberg 정확히 :) – mttrb

관련 문제