के बीच डेटा अलग है, हमें यह समस्या है जहां विभिन्न धागे एक ही रिकॉर्ड पर अलग-अलग डेटा देखते हैं लेकिन विभिन्न प्रबंधित ऑब्जेक्ट संदर्भ (एमओसी) के साथ। हमारा ऐप पृष्ठभूमि में सर्वर एपीआई में सिंक करता है। सभी सिंकिंग अपने स्वयं के धागे पर और अपने स्वयं के moc का उपयोग कर किया जाता है। हालांकि, हमने पाया है कि जब मुख्य डेटा पर डेटा अपडेट हो जाता है तो डेटा में परिवर्तन पृष्ठभूमि moc में नहीं दिखाया जाता है। कोई विचार क्या हो रहा है? यहां कुछ और विवरण दिए गए हैं: हम ग्रैंड सेंट्रल प्रेषण का उपयोग कर रहे हैं ताकि सिंक ऑपरेशंस को अपने स्वयं के धागे पर रखा जा सके: हमने जांच की है कि कौन सी कतार चीजें चल रही हैं और यह सब कतार पर अपेक्षित हो रहा है।आईओएस कोर्डटा अद्यतन विभिन्न प्रबंधित ऑब्जेक्ट संदर्भों पर नहीं देखे गए हैं - संदर्भ
- (void) executeSync; {
dispatch_async(backgroundQueue, ^(void) {
if([self isDebug])
NSLog(@"ICSyncController: executeSync queue:%@ \n\n\n\n\n", [self queue]);
for(id <ICSyncControllerDelegate> delegate in delegates){
[delegate syncController:self];
}
if([ICAccountController sharedInstance].isLoggedIn == YES && shouldBeSyncing == YES) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 300ull * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
[self executeSync];
});
}
});
}
यहाँ
कैसे हम पृष्ठभूमि MOC बना सकते हैं और हम पुष्टि की है कि यह पृष्ठभूमि कतार पर बनाया है।
- (NSManagedObjectContext*)backgroundObjectContext {
if (_backgroundObjectContext)
return _backgroundObjectContext;
_backgroundObjectContext = [[NSManagedObjectContext alloc] init];
[_backgroundObjectContext setPersistentStoreCoordinator:self.persistentStoreCoordinator];
[_backgroundObjectContext setStalenessInterval:0.0];
return _backgroundObjectContext;
}
मैं जोड़ने चाहिए कि हमारी पृष्ठभूमि MOC डेटा के लिए requerying जाता है और उन रिकॉर्ड है कि कार्रवाई से लौटे अभी भी कुछ क्षेत्रों के लिए पुराने मूल्यों की है। पृष्ठभूमि moc वर्तमान डेटा को कैसे प्राप्त करता है जो पहले से ही मुख्य moc द्वारा सहेजा गया था? मैंने सोचा कि मुझे केवल इन रिकॉर्ड्स की वर्तमान स्थिति मिल जाएगी ..
आवश्यकता के अनुसार मेरा मतलब है: पृष्ठभूमि एमओसी रिकॉर्ड के बाद "ताजा" डेटा प्राप्त करने के लिए एक और "क्वेरी" निष्पादित कर रहा है मुख्य moc, अभी तक डेटा पुराने मान हैं - मुख्य moc में चिह्नित अद्यतन मान नहीं।
+ (NSArray *)dirtyObjectsInContext:(NSManagedObjectContext *)moc {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(memberships, $m, $m.category.name == %@ AND $m.syncStatus > %d)[email protected] > 0", MANAGED_CATEGORY_FAVORITES, ManagedObjectSynced];
return [self managedObjectsWithPredicate:predicate inContext:moc];
}
आपका मदद बेहद सराहना की के रूप में हम यह पता लगा है, या उस के चारों ओर एक काम खोजने अब दिनों के लिए हमारे सूत्र खुदाई शामिल नहीं है की कोशिश कर रहा हूँ।
आपकी सहायता के लिए धन्यवाद। मुझे लगता है कि मेरे लिए आश्चर्य यह था कि हम रिकॉर्ड की आवश्यकता है, लेकिन वर्तमान डेटा प्राप्त नहीं करते हैं। हमने अभी पाया है कि यह [[[ICCoreDataController साझा किया गया] पृष्ठभूमि ऑब्जेक्ट कॉन्टेक्स्ट] रीसेट]; पृष्ठभूमि संदर्भ पर हमारे मुद्दों को हल किया। हालांकि मुझे यह बेहतर समझना अच्छा लगेगा। धन्यवाद!! –