ios - Does NSFetchedResultsController Observe All Changes to Persistent Store? -
मेरा प्रोग्राम नीचे दिए गए लिंक की तरह कार्य करता है:
- दिखाएं UITableView के लिए NSFetchedResultsController का परिणाम
- वेब सेवा से नई वस्तु हो और कोर डेटा को संग्रहीत (एक ही दृश्य नियंत्रक में, RestKit साथ)
- NSFetchedResultsController प्रतिनिधि की अधिसूचना के साथ अद्यतन तालिका दृश्य
NSFetchedResultsControllerDelegate के कार्यान्वयन से एप्पल के कोर डाटा परियोजना की नकल की और है मेरी predicated है:
<कोड> [NSPredicate predicateWithFormat: @ "isMyTest == सही"]
संपत्ति अद्यतन असत्य को सत्य से चला जाता है, यह tableview से पंक्तियों को हटा (क्योंकि पंक्ति के लिए वस्तु
fetchedObjects में है) < P> हालांकि, अगर संपत्ति अपडेट FALSE से TRUE तक जाता है, तो NSFetchedResultsController कुछ भी सूचित नहीं करता है, इसलिए नए डेटा तालिका दृश्य में नहीं देखा जा सकता है अगर मैं दोनों NSFetchedResulsController और UITableView मैन्युअल रूप से अपडेट करता हूं, तो यह नया डेटा दिखाता है
मैंने सोचा कि NSFetchedResultController निरंतर दुकान में सभी परिवर्तन देखता है, क्या यह बहुत बड़ी उम्मीद है? : डी
(मैं वास्तव में ऐसा करना चाहता हूं क्योंकि अन्य दृश्य नियंत्रक लगातार स्टोर को अपडेट कर सकता है, तो दृश्य नियंत्रक को अपडेट करना कठिन है।)
यदि ऐसा है, तो क्या आप मुझे दो पता है कि मैं NSFetchedResultsController को खूबसूरती से कैसे अपडेट कर सकता हूं?
(अद्यतन)
NSfetchedResultsController के संदर्भ में, मैं नीचे शब्दों को पढ़ने:
एक नियंत्रक प्रकार प्रभावी ढंग से आपरेशन के तीन मोड, चाहे द्वारा निर्धारित किया जाता है इसमें एक प्रतिनिधि है और कैश फ़ाइल नाम सेट है या नहीं।
नहीं ट्रैकिंग: प्रतिनिधि शून्य पर सेट है नियंत्रक केवल आंकड़ों तक पहुंच प्रदान करता है जैसे कि फ़ेच निष्पादित किया गया था।
मेमोरी-केवल ट्रैकिंग: प्रतिनिधि गैर-शून्य है और फ़ाइल कैश नाम शून्य पर सेट है नियंत्रक ऑब्जेक्ट्स पर नज़र रखता है इसके परिणाम सेट और अपडेट सेक्शन और संबंधित बदलावों के जवाब में ऑर्डर करने की जानकारी।
पूर्ण निरंतर ट्रैकिंग: प्रतिनिधि और फ़ाइल कैश नाम गैर-शून्य हैं नियंत्रक ऑब्जेक्ट्स पर नज़र रखता है इसके परिणाम सेट और अपडेट सेक्शन में और संबंधित बदलावों के जवाब में सूचना ऑर्डर करता है। नियंत्रक अपनी गणना के परिणामों का लगातार कैश रखता है।
"पूर्ण निरंतर ट्रैकिंग" का अर्थ यह नहीं है कि मैं क्या चाहता हूं? मैं cacheName सेट अप कर रहा हूँ, लेकिन यह एक ही काम करता है
मैंने सोचा था कि NSFetchedResultController लगातार दुकान में सभी परिवर्तनों को देखता है, यह बहुत बड़ी उम्मीद है?
एफआरसी केवल स्वचालित रूप से अपने फ़ेच द्वारा लौटा वस्तुओं को देखता है। यह सामान्य रूप से एक समस्या नहीं है क्योंकि एफआरसी द्वारा मॉनिटर किए गए ऑब्जेक्ट में परिवर्तन तालिका या यूआई या पृष्ठभूमि संदर्भ से उठना चाहिए। पूर्व में, एफआरसी को परिवर्तन के लिए सतर्क किया जाता है और बाद में, अग्रभूमि और पृष्ठभूमि के संदर्भ को मर्ज करने के लिए FRC को अद्यतन करने के लिए ट्रिगर किया जाएगा।
ऐसा लगता है कि आपके पास कोड बदलते मूल्य मिलते हैं लेकिन आप FRC को सूचित नहीं कर रहे हैं कि आपने कोई भी परिवर्तन किया है (यदि आपको सभी ऑब्जेक्ट्स को प्रदर्शित करते हुए एक टेबलव्यूज़ मिला है, जिसका
हैमीस्टेस्ट == सही है तब स्पष्ट रूप से आप उस UI से ऑब्जेक्ट्स तक नहीं पहुंच सकते हैं जिसका
isMyTest == FALSE है।) उस मामले में, आप के लिए tableview नियंत्रक रजिस्टर करने की आवश्यकता:
NSManagedObjectContextObjectsDidChangeNotification
?? | संदर्भ से सूचनाएं, ताकि आप परिवर्तन के लिए अद्यतन करने के लिए एफआरसी बता सकते हैं इसके अवलोकन के बाहर बनाया
Comments
Post a Comment