मैं एक जेसन फ़ाइल से डेटा लोड करता हूं, मैं इसे सहेजता हूं। मैं इसे दो बार करता हूं ... मुझे अपने कोर डेटा स्क्लाइट डेटाबेस में दो प्रविष्टियां मिलीं। भले ही मैं प्राथमिकKeyAttribute मैपिंग में सेट करता हूं।RestKit प्राथमिक कुंजी विशेषता
mapping.primaryKeyAttribute = @"code";
[mapping mapAttributesFromArray :mappedFields];
[[RKObjectManager sharedManager].mappingProvider setMapping:mapping forKeyPath:entityName];
मेरे Json
यहाँ कॉलबैक{ "MyEntity": [{ "कोड": "axv2" "डेटा": "सामग्री"}]};
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects { NSLog(@"Entries loaded %d",[objects count]); lastResult = objects; for(MyEntity * myEntity in lastResult) { [self saveContext]; } }
मेरे इकाई सही ढंग से मैप किया गया है ... लेकिन Restkit एक ही प्राथमिक कुंजी के साथ डुप्लिकेट प्रविष्टियों को बचाने के लिए अनुमति देते हैं:
?
यह अजीब बात है, मुझे समझ में आया कि यह प्राथमिक कुंजी विशेषता इस समस्या से बच जाएगी।
इसका मतलब है कि हर बार जब मैं संदर्भ को सहेजना चाहता हूं, तो मुझे यह प्रबंधित करने के लिए प्रबंधित संदर्भ की प्रत्येक इकाई पर लूप होना चाहिए कि यह इकाई एसक्लाइट डीबी में मौजूद है या नहीं? Restkit कुछ प्रदान नहीं करता है? या कोर डेटा? – Sam
असल में, हाँ। या, एक नया आइटम बनाने से पहले, इसे डेटाबेस से लाएं। यदि fetch खाली वापस आता है, इसे बनाएं, अन्यथा इसे प्रबंधित ऑब्जेक्ट संदर्भ में भी डालें। मैंने इसे इस तरह से किया और यह काफी कुशल है। – Mundi
मुझे डुप्लिकेशंस के साथ एक ही समस्या है, हालांकि Restkit डेटाबेस में डालने से पहले एक चेक प्रदान करता है, लेकिन ऐसा लगता है कि किसी कारण से मुझे (और आप) कॉल नहीं करना है। जांचें कि जब तक मुझे सही उत्तर नहीं मिलता है, तब तक मैं अस्थायी रूप से "हल" कैसे करता हूं http://stackoverflow.com/questions/7799890/primarykeyattribute-not-working-restkit-core-data – mateusmaso