के साथ newBackgroundContext() से अपडेट प्राप्त नहीं हो रहा है मेरे आवेदन में, मेरे पास UITableView में कोर डेटा ऑब्जेक्ट्स लोड करने के लिए NSFetchResultController
है। इस एफआरसी से जुड़े fetch अनुरोध NSPersistentContainer
(आईओएस 10) के लिए उपलब्ध नई viewContext
संपत्ति का उपयोग करता है।कोर डेटा आईओएस 10: viewContext को NSBetchResultController
जब मैं कोई सेल चुनता हूं, तो मैं कोर डेटा ऑब्जेक्ट को एक नए व्यू कंट्रोलर पर पास करता हूं। यह नया वीसी अभी भी viewContext का उपयोग करता है। इस व्यू कंट्रोलर से, मैं कोर डेटा ऑब्जेक्ट को वैकल्पिक रूप से प्रस्तुत व्यू कंट्रोलर से अपडेट कर सकता हूं। ऐसा करने के लिए, मैं मोडल व्यू कंट्रोलर के लिए newBackgroundContext()
का उपयोग करता हूं। मैं किसी भी मुद्दे के बिना अद्यतन कोर डेटा ऑब्जेक्ट को सहेज सकता हूं।
समस्या यह है कि FRC स्वचालित रूप से पृष्ठभूमि संदर्भ से अद्यतन कोर डेटा ऑब्जेक्ट के साथ अद्यतन नहीं होता है। ऐसा लगता है कि viewContext कोर डेटा ऑब्जेक्ट अपडेट को प्राप्त नहीं कर रहा था।
यदि मैं viewContext (ऐप चौड़ा) के लिए automaticallyMergesChangesFromParent
सत्य पर सेट करता हूं, तो जब मैं पृष्ठभूमि संदर्भ को सहेजता हूं तो एफआरसी अद्यतन कोर डेटा ऑब्जेक्ट प्राप्त करता है। मेरी समझ से, viewContext को डेटा के विलय को स्वचालित रूप से प्रबंधित करना चाहिए। प्रलेखन व्यू कॉन्टेक्स्ट का वर्णन करता है: "यह संदर्भ पीढ़ी के लिए कॉन्फ़िगर किया गया है और स्वचालित रूप से अन्य संदर्भों से अधिसूचनाओं को सहेजने के लिए कॉन्फ़िगर किया गया है।"
क्या आप NSFetchResultController के साथ विभिन्न संदर्भों को संभालने के तरीके को स्पष्ट कर सकते हैं?
धन्यवाद, एक्सल
प्रलेखन (NSManagedObjectContext.h में) कहते हैं:" चाहे संदर्भ स्वचालित रूप से अपने समन्वयक को बचाया परिवर्तन विलीन हो जाती है या माता-पिता संदर्भ। जब इस संदर्भ को गैर-वर्तमान क्वेरी पीढ़ी के लिए पिन किया गया है, तो इस संपत्ति को YES पर सेट करना समर्थित नहीं है "। ऐसा लगता है कि किसी भी अभिभावक के मामले को" स्टोर समन्वयक "द्वारा कवर नहीं किया गया है .viewCoordinator और .newBackgroundContext एक ही स्टोर समन्वयक साझा करते हैं (मैंने अभी इसे चेक किया है)। तो सेटिंग। स्वचालित रूप से मेर्गेस चेंजप्रोमेंट का परिणाम अपेक्षित व्यवहार होगा। –