2012-02-12 7 views
6

मेरे पास एक UIManagedDocument का उपयोग करके बनाया गया कोर डेटा डेटाबेस है जिसे मैं UITableView में लोड करता हूं और ग्राफ़ पर उस डेटा के कुछ बिंदुओं को भी प्लॉट करता हूं। मुझे लगता है कि जब मैं डेटाबेस में कोई ऑब्जेक्ट जोड़ता हूं या डेटाबेस से किसी ऑब्जेक्ट को हटाता हूं और फिर डेटा प्राप्त करता हूं, तो NSFetchRequest रिटर्न को सरणी क्रमबद्ध नहीं किया जाता है, भले ही मेरे पास अनुरोध में एक प्रकार का वर्णनकर्ता है। दिलचस्प हिस्सा यह है कि अगर मैं कुछ सेकंड इंतजार करता हूं और फिर डेटा लाने/रीफ्रैच करता हूं, तो अब यह वापस आ गया है। मुझे लगता है कि मुझे कुछ गलत करना होगा। क्या कोर डाटा से मुझे कुछ कॉलबैक का उपयोग करना चाहिए, यह जानने के लिए कि डेटाबेस परिवर्तन पूरा हो गया है? यह अजीब बात है क्योंकि सभी डेटा हमेशा डेटाबेस में होते हैं, बस क्रमबद्ध नहीं होते हैं। मैं इसके साथ सुपर अनुभवी नहीं हूँ, इसलिए मुझे यकीन नहीं है।कोर डेटा NSFetchRequest ऑब्जेक्ट को हटाने और डेटा रीफ्रेट करने के बाद अनारक्षित सरणी देता है

यहाँ मेरी लाने का अनुरोध से कोड है:

NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"FuelPurchase"]; 
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateTimeStamp" ascending:YES]; 
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; 

NSError *error = nil; 
[self.fuelPurchaseDatabase.managedObjectContext executeFetchRequest:request error:&error]; 
+1

हटाने और पुनः लाने के बीच संदर्भ को सहेजने का प्रयास करें। – Costique

+0

मैं अपने प्रतिबद्धता में विलोपन कॉल के बाद सही बचत कर रहा हूं संपादन विधि: विधि। मैंने पाया है कि यदि मैं डेटाबेस में कोई ऑब्जेक्ट जोड़ता हूं और इसे बहुत तेज़ कोशिश करता हूं, तो वही समस्या होती है जहां इसे सॉर्ट नहीं किया जाता है। – Jamie

+0

क्या आप पुनः प्राप्त करने पर 'NSFetchRequest' ऑब्जेक्ट का पुन: उपयोग करते हैं? यह एक कैशिंग मुद्दे की तरह दिखता है। – Costique

उत्तर

0

आप controllerDidChangeContent: कॉलबैक का उपयोग कर रहे हैं?

शायद अपने संदर्भ को सहेजने के बाद प्रक्रियात्मक रूप से करने के बजाय इसे अपने दृश्य को अपडेट करने के लिए इसका उपयोग करें।

+0

मैं इसे आज़मा सकता हूं, लेकिन यदि मैं FetchedResultsController (एक अलग दृश्य में) को सेट करने से पहले डेटाबेस में कोई ऑब्जेक्ट जोड़ता हूं और तालिका और ग्राफ को बहुत तेज़ लोड करता हूं, तो यह भी सॉर्ट नहीं किया जाता है। – Jamie

संबंधित मुद्दे