डॉक्स से apple's example का उपयोगब्लॉक सिंटेक्स त्रुटि 'का निर्माण एक ब्लॉक'
float (^oneFrom)(float);
oneFrom = ^(float aFloat) {
float result = aFloat - 1.0;
return result;
};
मैं दो त्रुटियों मिलता है: एक अलग प्रकार के साथ 'oneFrom' की
- पुनर्व्याख्या: 'int' बनाम 'नाव (^) (नाव)'
- प्रकार विनिर्देशक लापता, 'int'
ALS के चूक ओ दस्तावेज़ से ..
आप स्पष्ट रूप से एक ब्लॉक अभिव्यक्ति की वापसी मूल्य की घोषणा नहीं करते हैं, यह स्वचालित रूप से ब्लॉक की सामग्री से अनुमान लगाया जा सकता है। यदि रिटर्न प्रकार अनुमानित है और पैरामीटर सूची शून्य है, तो आप (शून्य) पैरामीटर सूची को भी छोड़ सकते हैं। अगर या एकाधिक रिटर्न स्टेटमेंट मौजूद हैं, तो उन्हें बिल्कुल मेल खाना चाहिए (यदि आवश्यक हो तो कास्टिंग का उपयोग करना)।
मेरी समझ यह थी कि ब्लॉक सी फ़ंक्शन पॉइंटर्स के समान हैं। क्या मैं इसे हेडर फ़ाइल में घोषित नहीं कर सकता? – estobbart
@estobbart नहीं, ब्लॉक फ़ंक्शन पॉइंटर्स की तुलना में अधिक जटिल अवधारणा हैं। सबसे महत्वपूर्ण: वे डेटा लेते हैं, इसलिए उन्हें ढेर या ढेर पर गतिशील रूप से आवंटित किया जाना चाहिए। सी स्थिर भंडारण अवधि के साथ वस्तुओं के प्रारंभिकरण की अनुमति नहीं देता है, इसलिए आप फ़ाइल स्कोप पर एक ब्लॉक को परिभाषित नहीं कर सकते हैं। –
@estobbart आप, हेडर फ़ाइल में 'extern' का उपयोग करके ब्लॉक प्रकार परिवर्तक घोषित कर सकते हैं। हालांकि, आप एक ब्लॉक को परिभाषित नहीं कर सकते हैं। –