Tuesday 15 January 2013

iphone - Parent NSManagedObjectContext has no changes after child is saved, but only in release mode (works in debug mode) -


मेरे सेटअप:

  • एक NSManagedObjectContext प्रकार के साथ <कोड > NSPrivateQueueConcurrencyType है कि मेरे <कोड से जुड़ा है> NSPersistentStoreCoordinator
  • एक NSManagedObjectContext प्रकार NSMainQueueConcurrencyType कि का एक बच्चा है निजी संदर्भ।
  • एक NSManagedObjectContext प्रकार के साथ NSConfinementConcurrencyType है कि मुख्य संदर्भ का एक बच्चा है।

    किसी सर्वर से डेटा डाउनलोड करते समय, मैं डेटा के प्रकार के संदर्भ में NSConfinementConcurrencyType लिखता हूं मैं तब इस संदर्भ को बचाता हूं, जो मेरे मुख्य संदर्भ में परिवर्तन को धक्का देता है तब मैं अपना मुख्य संदर्भ सहेजता हूं, जो मेरे निजी संदर्भ में परिवर्तन को धक्का देता है इस बिंदु पर, मैं अपने लगातार दुकान में सब कुछ को बचाने के लिए निजी संदर्भ पर performBlock विधि का उपयोग करें।

    यह दोषरहित काम करता है जब एक डिवाइस पर डिबगिंग। जब भी मैं अनुप्रयोग को संग्रहीत करता हूं और एप्लिकेशन को रिलीज़ मोड में चलाता हूं, तब भी मेरा मुख्य संदर्भ कभी भी परिवर्तन प्राप्त नहीं करता, भले ही मैं इसे सफलतापूर्वक बच्चे के संदर्भ को सहेजूं। मैंने डबल जांच की है और मेरा अस्थायी संदर्भ वास्तव में मुख्य संदर्भ से जुड़ा हुआ है (मुख्य संदर्भ को अस्थायी संदर्भ के माता-पिता के रूप में दिखाया गया है) लेकिन जब भी मैं रिलीज़ मोड में अस्थायी संदर्भ को बचाता हूं, मुख्य संदर्भ कभी भी कोई भी परिवर्तन नहीं दिखाता है मैं क्यों इस डिबग मोड में काम करेंगे, लेकिन रिलीज में नहीं के रूप में विस्मित कर रहा हूँ।

    कोई सुझाव / मदद बहुत सराहना की जाएगी।

    धन्यवाद,

    गोरस्की

    संपादित करें: अगर मैं डीबग कॉन्फ़िगरेशन का उपयोग कर निर्माण को आरक्षित करता हूं, तो सब कुछ अपेक्षित रूप से काम करता है इसलिए रिलीज कॉन्फ़िगरेशन में कुछ सेटिंग अलग-अलग है मैं जो मिल रहा हूं उसके साथ मैं वापस रिपोर्ट करूंगा।

    संपादित करें 2: अपराधी मिला। इसलिए मैंने मेरी सहेजी गई कॉन्टैक्ट कॉल को एनएएसएएसर्ट में लपेट लिया था (परीक्षण के दौरान किसी भी विफलता को पकड़ने की उम्मीद में)। दुर्भाग्य से, रिलीज़ कॉन्फ़िगरेशन ने इन अटिटेशन ब्लॉकों को छीन लिया जो मेरी सहेजी गई कॉल चेहरा हथेली

    एनएससीनफ़िनेशन कनक्यूर्निटी टाइप पुरानी विरासत है मूल डेटा व्यवहार, माता-पिता और बच्चे के संदर्भों की कल्पना से पहले। आप एक बच्चे संदर्भ में एक आयात कर रहे हैं, उस बच्चे NSPrivateQueueConcurrencyType की जरूरत है। मुझे आश्चर्य है कि के प्रदर्शन को अवरोधित करें: , माता-पिता / बच्चे MOCs, और NSConfinementConcurrencyType बिल्कुल काम करता है।

No comments:

Post a Comment