दिलचस्प पोस्ट
JQuery का उपयोग करके सीएसएस कैसे बदल सकता है? गतिशील रूप से jQuery का उपयोग करते हुए divs की व्यवस्था "Nested foreach" बनाम "लैम्ब्डा / लिनक क्वेरी" प्रदर्शन (LINQ-to-Objects) डोनाल्ड बी जॉनसन एल्गोरिदम में मदद, मैं छद्म कोड (भाग द्वितीय) को समझ नहीं सकता सीएसएस – बीच में सीएसएस पक्ष में दो छवियों को केंद्र क्या सी ++ में एक सभ्य प्रतीक्षा समारोह है? कस्टम एडाप्टर getView () विधि को नहीं कहा जाता है रचनात्मक हस्ताक्षर के साथ टाइपस्क्रिप्ट इंटरफेस कैसे काम करता है? मैं MySQL में एकाधिक स्तंभों के लिए अद्वितीय बाधा कैसे निर्दिष्ट करूं? एचटीएमएल में चयन के बाद रेंज ऑब्जेक्ट के परिवर्तनों को जारी रखने के लिए Jquery – $ .post () कैसे करें contentType = application / json का उपयोग करें? डेटा विशेषता मान के आधार पर jquery सॉर्ट सूची सरणी के लिए स्विफ्ट स्ट्रिंग कन्वर्ट क्या मैं फ्लोटिंग प्वाइंट मुद्दे के लिए PHP php.ini परिशुद्धता समाधान पर भरोसा कर सकता हूं मैं malloc () का उपयोग कर आवंटित स्मृति ब्लॉक का आकार कैसे प्राप्त करूं?

मेरी अपनी विधि के लिए कस्टम पूरा ब्लॉक

मैंने अभी पूरा पूरा ब्लॉकों की खोज की है:

completion:^(BOOL finished){ }]; 

मेरा अपना तरीका पूरा करने का ब्लॉक लेने के लिए मुझे क्या करने की आवश्यकता है?

वेब के समाधान से एकत्रित समाधान "मेरी अपनी विधि के लिए कस्टम पूरा ब्लॉक"

1) अपने स्वयं के पूरा होने वाले ब्लॉक को परिभाषित करें,

 typedef void(^myCompletion)(BOOL); 

2) एक ऐसा तरीका तैयार करें जो आपके पूरा होने वाला ब्लॉक पैरामीटर के रूप में लेता है,

 -(void) myMethod:(myCompletion) compblock{ //do stuff compblock(YES); } 

3) यह आप इसे कैसे उपयोग करते हैं,

 [self myMethod:^(BOOL finished) { if(finished){ NSLog(@"success"); } }]; 

यहां छवि विवरण दर्ज करें

आप ब्लॉक को एक कस्टम प्रकार के रूप में परिभाषित करते हैं:

 typedef void (^ButtonCompletionBlock)(int buttonIndex); 

फिर इसे किसी विधि के तर्क के रूप में प्रयोग करें:

 + (SomeButtonView*)buttonViewWithTitle:(NSString *)title cancelAction:(ButtonCompletionBlock)cancelBlock completionAction:(ButtonCompletionBlock)completionBlock 

इसे कोड में बुलाते समय यह किसी भी अन्य ब्लॉक की तरह है:

 [SomeButtonView buttonViewWithTitle:@"Title" cancelAction:^(int buttonIndex) { NSLog(@"User cancelled"); } completionAction:^(int buttonIndex) { NSLog(@"User tapped index %i", buttonIndex); }]; 

यदि यह ब्लॉक को ट्रिगर करने के लिए समय आता है, तो बस completionBlock() कॉल करें completionBlock() ब्लॉक completionBlock() (जहां completionBlock करें ब्लॉक आपके स्थानीय प्रतिलिपि का नाम है)।

ब्लॉक वेरिएबल्स सिंटैक्स में समान हैं जो सी में पॉइंटर्स कार्य करते हैं।

क्योंकि सिंटैक्स बदसूरत है वे अक्सर टाइप किए गए हैं, हालांकि उन्हें सामान्य रूप से भी घोषित किया जा सकता है

 typedef void (^MyFunc)(BOOL finished); - (void)myMethod:(MyFunc)func { } 

नॉन टाइपिफ़ के लिए यह उत्तर देखें:

किसी टाइप विधि के उपयोग के बिना एक ब्लॉक विधि पैरामीटर घोषित करें