के साथ एक अद्वितीय परिणाम सेट पुनर्प्राप्त करना मेरे पास एक कोर डेटा आधारित ऐप है जो इकाइयों का एक समूह प्रबंधित करता है। मैं निम्नलिखित करने में सक्षम होने के लिए देख रहा हूँ।कोर डेटा
मेरे पास गुणों के साथ "कुछ एंटीटी" इकाई है: नाम, प्रकार, रैंक, foo1, foo2।
अब, अगर हम एसक्यूएल शर्तों में सख्ती से बोल रहे हैं तो कुछ एंटीटीटी में कई पंक्तियां हैं। जो मैं पूरा करने की कोशिश कर रहा हूं वह केवल उपलब्ध प्रकारों को पुनर्प्राप्त करना है, भले ही प्रत्येक इंस्टेंस में डुप्लिकेट प्रकार हो। मुझे रैंक के अनुसार क्रम में लौटने की भी आवश्यकता है।
NSError *error = NULL;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setReturnsDistinctResults:YES];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"type", @"rank", nil]];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"SomeEntity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
// sort by rank
NSSortDescriptor *rankDescriptor = [[NSSortDescriptor alloc] initWithKey:@"rank" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:rankDescriptor,nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[rankDescriptor release];
NSArray *fetchResults = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
[fetchRequest release];
return fetchResults;
अब ठीक है कि निम्नलिखित के साथ क्रैश हो रहा है:
SELECT DISTINCT(type) ORDER BY rank ASC
यहाँ कोड मैं अब तक कि तोड़ने है है है: तो एसक्यूएल में, मैं क्या तलाश कर रहा हूँ निम्नलिखित है: Invalid keypath section passed to setPropertiesToFetch:
अपडेट किया गया उदाहरण। –
लाने के लिए गुणों पर एक त्रुटि हुई थी और यदि आप @ "टाइप" और @ "रैंक" लाने के लिए गुण निर्दिष्ट करेंगे, तो आप दोनों गुणों पर विशिष्ट होंगे। आपको केवल @ "प्रकार" संपत्ति निर्दिष्ट करना चाहिए –