2012-02-14 6 views
5

आप नीचे देख सकते हैं, ऑब्जेक्टिव-सी में वस्तुओं सब एक इसा क्षेत्र है जो क्या थोड़े वर्ग यह है करने के लिए बिंदु है। आखिरकार, सब कुछ एनएसओब्जेक्ट को इंगित करता है जो बदले में कक्षा को इंगित करता है। इस वर्ग में आईएसए क्यों है जो खुद को इंगित करता है? शायद यह भी समझ में कक्षा वस्तु के लिए इस आत्म संदर्भित क्षेत्र के लिए लेकिन फिर Xcode के बिंदु घड़ी विंडो में दिखा रहा है कि उपयोगकर्ता ने बनाया है? Xcode यहां सुपर शाब्दिक जा रहा है या वहाँ कभी एक कक्षा वस्तु के लिए इसा क्षेत्र दिखाने के लिए एक बिंदु है?ही कक्षा की ओर इशारा करते के इसा क्षेत्र की बात क्या है? या एक्सकोड यह दिखाने से परेशान क्यों है?

मैं Xcode की घड़ी खिड़की क्या करता है के बारे में जुओं से भरा हुआ नहीं किया जा रहा हूँ, मैं के रूप में मुझे लगता है इस भ्रम का मतलब है कि मैं कुछ समझ नहीं कर रहा हूँ वास्तव में उत्सुक हूँ।

the watch window in Xcode

+1

अन्य लोगों को जवाब में कारण 'isa' क्षेत्र स्वयं निर्देशात्मक है डाल दिया। क्यों डीबगर इसे दिखाता है ... अच्छा, यह स्मृति में संरचना का हिस्सा है। आप नहीं चाहते कि डीबगर आपके लिए निर्णय ले सके कि आप क्या करते हैं या नहीं देखना चाहते हैं। यह आपको दिखाता है कि जो भी स्मृति में वास्तविक चर से जुड़ा हुआ है, इस मामले में यह एक ऑब्जेक्ट संरचना है। –

उत्तर

2

लिए मुझे लगता है इस मेटा-वर्गों के साथ क्या करना है खुद के लिए कहते हैं। यहाँ मेटा वर्गों में से एक काफी विस्तृत विवरण के लिए देखें: What is meta class in objective-c?

सारांश में, वहाँ एक NSObject मेटा-वर्ग जो उद्देश्य-सी में केवल स्वयं परिभाषित वर्ग है, और (NSObject खुद सहित) होगा NSObject के सभी वंशज है एक इसा इस पर इशारा करते हुए।

1

कारण है कि यह अपने आप के लिए लूप कि isa ऑब्जेक्टिव-सी विधि प्रणाली द्वारा इस्तेमाल किया जाता है, यह Methods की एक परिभाषा है कि लागू किया जा सकता है के साथ एक वर्ग को इंगित करना चाहिए। इस प्रकार यह मेटा-वर्ग पदानुक्रम के अंत में करने के बजाय NULL

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