चलाना समाप्त हो गया है इसलिए मूल रूप से मुझे ब्लॉक समाप्त होने के बाद एक सेगू चलाने में सक्षम होना चाहिए। मेरे पास एक ब्लॉक है जो कुछ JSON सामान करता है और मुझे यह जानने की आवश्यकता है कि यह कब समाप्त हो गया है।एक dispatch_async ब्लॉक को कैसे जांचें
मेरे पास एक कतार है जिसे मैंने json_queue कहा है।
dispatch_async(jsonQueue, ^{
[self doSomeJSON];
[self performSegueWithIdentifier:@"modaltomenu" sender:self];
});
यह अभ्यस्त मुझे लाइन प्रदर्शन करते हैं: "[आत्म performSegueWithIdentifier: @" modaltomenu
jsonQueue = dispatch_queue_create("com.jaboston.jsonQueue", NULL);
मैं तो इस सिंटैक्स के साथ dispatch_async ब्लॉक "प्रेषक: स्वयं],"
मुख्य धागे या वेब थ्रेड के अलावा किसी धागे से वेब लॉक प्राप्त करने का प्रयास किया। यह माध्यमिक धागे से UIKit को कॉल करने का परिणाम हो सकता है। अब क्रैशिंग ...
थ्रेड ने अपना गंदा काम कब किया है, यह जानने के लिए मैं कहां से जांच कर सकता हूं ताकि मैं सेगू को कॉल कर सकूं?
धन्यवाद प्यारे लोग।
पुनश्च: बियर और उतार टेडी भालू और जो कोई भी के लिए फूलों की मदद कर सकते < 3.
आप सर के ऊपर और बियर है। (यही वह जवाब है जिसे मैं ढूंढ रहा था!)। मैं पूरी तरह से भूल गया था कि आप किसी भी समय मुख्यकुछ पर वापस कूद सकते हैं। प्रतिभाशाली। – jimbob
मैं इस सामान के लिए नया हूँ। ब्लॉक के अंदर performSelectorOnMainThread का उपयोग करने से यह बेहतर क्यों है? –
@jimbob मुझे उल्लेख करना चाहिए कि तीसरे पंक्ति में 'dispatch_async' के बजाय' dispatch_sync' का उपयोग करना इस मामले में बेहतर होगा (मैंने इसे संपादित किया है)। WWDC2010 सत्र 206 वीडियो में इस पैटर्न की अनुशंसा की जाती है। @ranReloaded एक और ब्लॉक का उपयोग करना अधिक सुविधाजनक है क्योंकि आपको इस तरह के सरल कार्य के लिए पूरी नई विधि बनाने की आवश्यकता नहीं है, और क्या बढ़िया है, आप ब्लॉक चर के दायरे के भीतर प्रत्येक चर का उपयोग कर सकते हैं। – Johnnywho