मेरे ऐप में मेरे पास "मास्टर" NSPrivateQueueConcurrencyType
संदर्भ है जो माता-पिता के रूप में NSMainQueueConcurrencyType
संदर्भ में कार्य करता है कि दृश्य नियंत्रक भरोसा करते हैं और पास करते हैं। मैं एसिंक बचाता है इसका लाभ लेने के लिए ऐसा करना चाहता था (यह ऐप कोर डेटा के साथ iCloud का उपयोग करता है और सर्वव्यापी लॉग निर्यात करने के लिए बहुत सारे काम करता है)। सेटअप Zarra दृष्टिकोण this articleघोंसला हटाता है और नेस्टेड एनएसएएनएजेडऑबजेक्ट कॉन्टेक्स्ट में बचाता है
के निचले भाग में उल्लेख किया है के समान है अनुप्रयोग के भीतर बचाता है आम तौर पर देखने की तरह:
[context save:nil];
[context.parentContext performBlock:^{
[context.parentContext save:nil];
}];
इस छोटे से संपादन/अद्यतन के लिए अच्छी तरह से काम करने लगता है, लेकिन मैं लेकर संदेह में हूँ जब मैं कई वस्तुओं को हटाता हूं तो मैं क्या देखता हूं (उदाहरण के लिए, एक ऐसी परियोजना को हटाएं जिसमें सैकड़ों कार्य वस्तुएं इससे संबंधित हों)।
उस स्थिति में बचत एसिंक है लेकिन ऐसा लगता है कि मुख्य धागा एक सेमफोर प्रतीक्षा स्थिति में आता है (जैसा कि मैंने डीबगर को रोक दिया था) और प्रभावी रूप से अवरुद्ध है (मैं यूआई में स्क्रॉल नहीं कर सकता) पृष्ठभूमि तक निजी संदर्भ बचाता है।
असल में, मैंने अभी देखा है कि इस ऑब्जेक्ट सेव पैटर्न के बावजूद, एक ऑब्जेक्ट के स्वाइप-टू-डिलीट हटाने में एक उल्लेखनीय देरी होती है, इसलिए ऐसा लगता है कि ऐप में सभी डिलीशन धीमे हैं।
हैं, तो वैकल्पिक रूप से, मैं एक नया NSPrivateQueueConcurrencyType
संदर्भ alloc, AppDelegate में मुख्य PSC करने के लिए अपने लगातार दुकान समन्वयक निर्धारित करते हैं, और नष्ट करने और बचाने के लिए, यह अभी भी बहुत काम करती है, लेकिन यूआई अवरुद्ध कभी नहीं है (लेकिन तो मुझे संदर्भों को समन्वय करने, मुख्य संदर्भ में रीफ्रेश करने के बारे में चिंता करने की ज़रूरत है)।
कोई भी विचार जो मैंने गलत किया हो, या आपने यह व्यवहार भी देखा है?
धन्यवाद जॉडी!मैं हर समय आपके सहायक उत्तर में आ जाता हूं। मैं अपने मुद्दों को देखने के लिए कुछ और काम कर रहा हूं। एक स्क्रीन पर मैं अपनी परियोजनाएं प्रस्तुत करता हूं (परियोजनाओं में कई कार्य होते हैं) और एनएसएफआरसी का उपयोग नहीं करते हैं। मैं उन चीजों को देख रहा हूं जिनकी आपने मेरी दूसरी स्क्रीन के लिए उल्लेख किया है (जो कार्य सूचीबद्ध करता है और एक एनएसएफआरसी का उपयोग करता है) जहां घोंसला वाले दृष्टिकोण का उपयोग करके एक ही कार्य का स्वाइप-टू-डिलीट धीमा होता है (और यदि मैं मानक पर वापस आ जाता हूं NSMainQueueConcurrencyType संदर्भ पीएससी से जुड़ा हुआ है) – azsromej
इसे उपकरणों में चलाएं। वास्तव में क्या हो रहा है यह देखने का सबसे अच्छा तरीका है। –
अजीब, यूआई को अवरुद्ध करने वाले सहेजने वाले परिणामों में स्वाइप-टू-डिलीट परिणामों का उपयोग करके, लेकिन संपादन-पूर्ण बटन का उपयोग करके, लाल सर्कल को टैप करते हुए, हटाएं, अवरुद्ध नहीं करता है, दोनों प्रतिबद्धता के माध्यम से बहने के बावजूद संपादन करें: forRowAtIndexPath (जहां deleteObject: और सहेजें: होता है) – azsromej