किसी को कैसे इस ब्लॉक वाक्य रचना काम करता है व्याख्या कर सकते हैं?उद्देश्य-सी ब्लॉक वाक्यविन्यास - क्या कोई इसे समझा सकता है?
AStreamBuilder stream_builder = [ [ ^(void)
{
// some more code..
return (NSInputStream *)[ NSInputStream inputStreamWithFileAtPath: some_path ];
} copy ] autorelease ];
return stream_builder;
ब्लॉक का नाम क्या है? ब्लॉक की प्रतिलिपि क्यों बनाई जा रही है और फिर ऑटोरेलेटेड क्यों है? मैं इन सबसे छुटकारा यहाँ क्या हो रहा है .. ब्लॉक AStreamBuilder लौट लेकिन शरीर ब्लॉक के यह NSInputStream का एक उदाहरण देता है अंदर करने के लिए कहा जाता है के साथ भ्रमित कर रहा हूँ।
किसी को भी इस टूट कर सकते हैं?
यदि ब्लॉक एनएसएसटी स्ट्रीम का एक उदाहरण वापस करने जा रहा है, तो उपरोक्त वाक्यविन्यास में वापसी प्रकार कैसे घोषित नहीं किया गया था? – randombits
ऐसा इसलिए है क्योंकि 'शून्य' आप देखते हैं कि वापसी मूल्य नहीं है, लेकिन तर्क (ओं) है। इस ब्लॉक में कोई तर्क नहीं है। वापसी प्रकार यहां बिल्कुल निर्दिष्ट नहीं है। यह ठीक है क्योंकि "[वापसी का प्रकार वैकल्पिक है और वापसी विवरणों से अनुमानित है।] (Http://clang.llvm.org/docs/BlockLanguageSpec.txt)" – puzzle
@rand वहां दो चीजें हो रही हैं: पर एक हाथ, पहेली के रूप में कहा, वापसी प्रकार वापसी बयान से अनुमानित है। दूसरी तरफ, 'एस्ट्रीमबिल्डर' एक 'टाइपपीफ' है जो ब्लॉक के रिटर्न प्रकार को परिभाषित करता है। कार्य करने के लिए असाइनमेंट के लिए, अनुमानित वापसी प्रकार को 'ASTreamBuilder' में परिभाषित रिटर्न प्रकार से मेल खाना चाहिए। आप Xcode में 'ASTreamBuilder' की घोषणा को राइट-क्लिक करके और परिभाषा पर कूदने का चयन कर सकते हैं। –