आप केवल एसक्यूएल बैकएंड में एक से कई रिश्तों का उपयोग कर सकते हैं। यह ऐसा करेगा, लेकिन आपको "बैक-लिंक" को ऑर्डर किए गए सेट में जोड़ना होगा (यदि आप सॉर्टिंग का उपयोग करते हैं तो ऑर्डर को सुरक्षित रखने के लिए - और विशिष्टता क्योंकि आप एक ही श्रेणी में वापस कई उपश्रेणियां प्राप्त कर सकते हैं)। सीमाओं पर विचार करते हुए आदर्श नहीं है, लेकिन बुरा नहीं है।
// Search for all subcategories with item count > 0
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Subcategory"];
request.predicate = [NSPredicate predicateWithFormat:@"[email protected] > 0"];
NSError *error = nil;
// They should have an inverse relationship to their category...
// We have to iterate and insert them in to a set, but there is no additional
// disk access.
NSMutableOrderedSet *results = [NSMutableOrderedSet orderedSet];
[[self.projectDatabase.managedObjectContext executeFetchRequest:request error:&error] enumerateObjectsUsingBlock:^(Subcategory *obj, NSUInteger idx, BOOL *stop) {
[results addObject:obj.category];
}];
संपादित
दुर्भाग्य से, मुझे नहीं लगता कि इस एसक्यूएल दुकान के साथ संभव है है। सबसे पहले, मुझे तनाव दें कि मैं एसक्यूएल विशेषज्ञ के करीब कहीं भी नहीं हूं, और मैं आमतौर पर अपने कोरडाटा स्टोर्स को डिज़ाइन करने की कोशिश करता हूं ताकि इन प्रकार के प्रश्न जरूरी न हों। हालांकि, निम्न SUBQUERY एक इनमेमरी स्टोर के साथ काम करता है, इसलिए यह कुछ हद तक ठीक से स्वरूपित सबक्वायरी है।
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SUBQUERY(subcategories, $s, [email protected] > 0)[email protected] > 0"];
हालांकि, यह अनुमान एक SQL स्टोर का उपयोग करते समय एक त्रुटि देता है। दस्तावेज़ों का कहना है कि एसक्यूएल स्टोर्स के साथ भविष्यवाणी करते समय सीमाओं की एक उचित संख्या है, इसलिए मैं न तो आश्चर्यचकित हूं, न ही इस पर शोध करने में बहुत अधिक समय व्यतीत करना चाहता हूं।
कीपैथ जिसमें केवीसी कुल होता है जहां एक नहीं होना चाहिए; $ S.items संभाल करने विफल रहा है। @ गिनती
स्रोत
2012-04-14 14:58:02
NSCompoundPredicate के माध्यम से एकाधिक NSPredicates का उपयोग करें। https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pCreating.html –
'items' शायद एक सेट है, count' –