उद्देश्य-सी में, आप किसी ऑब्जेक्ट के गतिशील प्रकार को रनटाइम पर अपने isa
सदस्य चर को असाइन करके बदल सकते हैं:क्या यह उद्देश्य-सी ऑब्जेक्ट के आईएसए को बदलने के लिए व्यवहार को परिभाषित करता है?
id object = ...;
object->isa = [SomeClass class];
क्या यह अपरिभाषित व्यवहार है? मैं वर्तमान में इसे किसी और चीज के लिए एक कड़वाहट के रूप में कर रहा हूं, और ऐसा लगता है कि यह काम कर रहा है, लेकिन मुझे इस तरह से बहुत गंदे लग रहा है। मैं जिस नई कक्षा में सेटिंग कर रहा हूं वह किसी सदस्य चर को जोड़ता नहीं है, यह सिर्फ एक विधि को ओवरराइड करता है और एक नया जोड़ता है, इसलिए कक्षा का आकार समान होता है। मुझे लगता है कि अगर मैंने ऑब्जेक्ट आकार बदल दिया है, तो बहुत बुरापन का परिणाम होगा।
[उद्देश्य-सी: रनटाइम पर किसी ऑब्जेक्ट की श्रेणी को कैसे बदला जाए?) (Http://stackoverflow.com/questions/8512793/objective-c-how-to-change-the-class- ऑफ-ऑब्जेक्ट-ऑन-रनटाइम) –
आप केवीओ के साथ समस्याओं में भाग ले सकते हैं। वे भी आईएसए-स्विजलिंग का उपयोग करते हैं। माइक ऐश का पूरा समाधान है हालांकि: http://www.mikeash.com/pyblog/friday-qa-2010-11-19- क्रिएटिंग- क्लास-at-runtime-for-fun-and-profit.html – nielsbot