2012-07-15 29 views
13

मैं पढ़ रहा हूं ऐप्पल article about Objective-C runtime type encoding strings और कुछ तरीकों में उनके प्रकार के तारों में संख्याएं हैं।ओबीजेसी विधि प्रकार एन्कोडिंग स्ट्रिंग में अंक क्या हैं?

[email protected]:[email protected] में संख्याओं का क्या अर्थ है?

- (void) setSomething:(id) anObject 

इसे तोड़ने के लिए नीचे:

उत्तर

23

यह इस तरह एक सेटर विधि का एक एन्कोडिंग की तरह लग रहा

  • v का मतलब शून्य वापसी प्रकार
  • 12 तर्क फ्रेम के आकार का मतलब (12 बाइट्स)
  • @0 का अर्थ है कि तर्क का बाइट ऑफसेट 0 पर एक उद्देश्य-सी ऑब्जेक्ट प्रकार है फ्रेम
  • :4 का मतलब है कि वहाँ बाइट में एक चयनकर्ता ऑफसेट (यह प्रत्येक ऑब्जेक्टिव-सी विधि में निहित self वस्तु है) 4 (यह हर विधि है, जो चयनकर्ता कि विधि आह्वान करने के लिए इस्तेमाल किया गया था है में निहित _cmd है)।
  • @8 का मतलब है कि वहाँ बाइट में एक और ऑब्जेक्टिव-सी ऑब्जेक्ट प्रकार ऑफसेट 8.
+0

तो पहले नंबर तर्क फ्रेम आकार है, और दूसरों को ऑफसेट रहे हैं ... धन्यवाद! –

+6

भावी पाठकों के लिए नोट: [बीबीएम का कहना है कि ऑफ़सेट नंबर इस बिंदु पर व्यर्थ हैं] (http://stackoverflow.com/a/11527925/603977)। –

+0

। 12 तर्क फ्रेम का आकार नहीं है, जो कि यदि आप मेरा प्रश्न देखते हैं तो यह अधिक स्पष्ट हो जाता है [यहां] (http://stackoverflow.com/questions/41502199/deciphering-objc-method-description-in-swift-conversion-decoding -प्रशन) – clearlight