2012-06-11 5 views
5

UITableView.h में, UITableView के लिए इंटरफ़ेस घोषणा में, एक ivar struct _tableFlags है। संरचना के सदस्यों को सभी को हस्ताक्षरित 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

, bitfields अक्सर एक प्रतिनिधि पर 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

आह, इसलिए बिट फ़ील्ड का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि संरचना द्वारा कम से कम स्मृति का उपयोग किया जाता है? क्या यह मानना ​​सही होगा कि बूल का उपयोग नहीं किया गया था क्योंकि इसे एक हस्ताक्षरित चार के रूप में परिभाषित किया गया है और इसलिए एक से अधिक चौड़ा है? – friedenberg

+0

@friedenberg बिल्कुल :) – mttrb

संबंधित मुद्दे