2010-09-08 11 views
6

मैं एक SQLite लगातार स्टोर का उपयोग कर रहा हूँ। मेरे पास कक्षा Den है जो कई रिश्तों के साथ Bear है। Bear कई क्षेत्रों है:एनएसपी्रेडिकेट जो कई क्षेत्रों में कई क्षेत्रों का संदर्भ देता है?

Bear: 
    breed 
    color 
    age 
    ... 

जब मैं अपने Den वस्तुओं के लिए अनुरोधों को लाने, मैं वस्तुओं है कि एक निश्चित क्षेत्र मूल्य के साथ एक संबंधित Bear के लिए फ़िल्टर कर सकते हैं का निर्माण कर रहा हूँ:

NSPredicate *hasGrizzlyPred = [NSPredicate predicateWithFormat:@"ANY Bear.breed == 'grizzly'"]; 

या मैं सिर्फ यह कर सकते हैं

NSPredicate *hasBrownBearPred = [NSPredicate predicateWithFormat:@"ANY Bear.color == 'brown'"]; 

लेकिन के लिए खोज करने के लिए किसी भी तरह से है: के रूप में आसानी से एक Den एक भूरे भालू है कि के लिए खोज एक Den जिसमें एक भालू है जो भूरा और ग्रिजली दोनों है? निम्नलिखित कानूनी है, लेकिन गलत है, मुझे लगता है कि:

// Not quite right: search for a den with a brown bear AND a grizzly 
NSPredicate *hasBrownAndGrizzlyPred = [NSPredicate predicateWithFormat:@"ANY Bear.color == 'brown' AND ANY Bear.breed == 'grizzly'"]; 

उत्तर

6

आप एक SUBQUERY विधेय अभिव्यक्ति के साथ ऐसा कर सकते हैं। एक भालू के साथ मांद (जहां DenBear करने के लिए एक से-अनेक संबंध bears का नाम दिया है) के लिए एक प्रश्न के मामले है कि दोनों भूरा और एक ग्रिजली है:

[NSPredicate predicateWithFormat:@"SUBQUERY(bears, $b, $b.color=='brown' AND $b.breed=='grizzly')[email protected] > 0"];

+0

कोर डाटा प्रलेखन मुझे छोड़ देता है ... कई बार निराश। यह पूर्ण है। –

+1

मैंने कई लोगों को 'एनएसईएक्सप्रेस' दस्तावेज में इंगित किया है। कृपया दस्तावेज पर bugreporter.apple.com पर एक बग रिपोर्ट दर्ज करें और सुझाव दें कि यह कैसे प्रस्तुत किया जा सकता है ताकि आप इसे जल्द से जल्द प्राप्त कर सकें। –

+0

इसे बचाने के लिए यह संभव है। @ गिनती मान? – Piero

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