यह इस खोज का विस्तार है: Is it possible to create a category of the "Block" object in Objective-C।क्या ओबीजे-सी ब्लॉक स्वयं निष्पादित कर सकता है?
मूल रूप से एनएसओब्जेक्ट या एनएसब्लॉक के माध्यम से ब्लॉक पर एक श्रेणी बनाने के लिए संभव लगता है, मुझे यह समझने में परेशानी हो रही है कि ब्लॉक खुद का मूल्यांकन कैसे कर पाएगा। उदाहरण पिछले सवाल का जवाब में दी गई:
- (void) doFoo {
//do something awesome with self, a block
//however, you can't do "self()".
//You'll have to cast it to a block-type variable and use that
}
संकेत मिलता है कि यह संभव है किसी भी तरह एक ब्लॉक चर करने के लिए स्वयं कास्ट करने के लिए है, लेकिन कैसे एक ब्लॉक में ही अमल होगा? उदाहरण के लिए, मैं NSBlock पर और एक विधि में एक वर्ग किया कहा:
NSBlock* selfAsBlock = (NSBlock*)self;
कोई संदेश मैं ब्लॉक का मूल्यांकन करने के लिए selfAsBlock को भेज सकते हैं है?
हाँ आप कर सकते हैं। आप इसमें अधिक (पहले से ही SO) पा सकते हैं http://stackoverflow.com/questions/4824613/is-there-a-self-pointer-for-blocks –
मुझे नहीं लगता कि यह समस्या कैसे हल करती है। यह जवाब इस बात पर ध्यान केंद्रित करता है कि ब्लॉक को अपनी ब्लॉक परिभाषा के भीतर से कैसे कॉल करें। मैं ब्लॉक ऑब्जेक्ट से ब्लॉक का मूल्यांकन करने के बारे में बात कर रहा हूं। बस थोड़ा और विशिष्ट होने के लिए, मैं इसके साथ प्राप्त करने की उम्मीद कर रहा हूं, ब्लॉक आधारित नियंत्रण प्रवाह (यानी [ब्लॉक जबकि ट्राउड: ब्लॉक]) करने के लिए ब्लॉक (या तो एनएसओब्जेक्ट या एनएसब्लॉक पर) को जोड़ने के तरीकों को जोड़ने में सक्षम होना है। ऐसा करने के लिए मुझे विधि में स्वयं को पुनर्मूल्यांकन करने के लिए ब्लॉक की आवश्यकता है। – donalbain