2011-08-15 8 views
5

उदाहरण के लिए, मैंआप coredata में अधिकतम मूल्य के साथ प्रविष्टि का चयन कैसे करते हैं?

@interface टीम की तरह CoreData में बचाने प्रबंधित वस्तु है: NSManagedObject

@property (nonatomic) NSNumber * teamID;

@end

मैं सफलतापूर्वक CoreData में अद्वितीय teamID साथ कुछ टीमों बचाया है, अब मैं अधिकतम teamID साथ टीम प्राप्त करना चाहते हैं, कैसे मैं यह कर सकता हूं?

मैं सभी टीमों को प्राप्त करता था और उन्हें सॉर्ट करता था, लेकिन यह fetched सरणी बनाने के लिए बड़े ओवरहेड लाएगा, कोई बेहतर विचार?

उत्तर

5

NSExpression का उपयोग करने के तरीकों में से एक है। इस में Core Data Programming Guide

+1

हाँ, मैं प्रयोग किया जाता @ "@ अधिकतम"। – CarmeloS

0

user465191 Fetching Specific Values धारा के तहत एक पूरी उदाहरण के साथ वर्णित किया गया है,

यहाँ मैं क्या करना है:

NSNumber *max = [teams valueForKeyPath: @"@max.teamID"]; 

NSPredicate *p = [NSPredicate predicateWithFormat: @"%K == %@", @"teamID", max]; 

Team *team = [[teams filteredSetUsingPredicate: p] anyObject]; 

यह की तुलना में मैं इच्छा है, लेकिन यह काम करता है और अधिक जटिल है।

एंड्रयू

2
  1. उपयोग एक NSSortDescriptor के लिए अपनी लाने का अनुरोध वस्तुओं को लाते समय के लिए एक आदेश निर्दिष्ट करने के लिए NSFetchRequests के -setSortDescriptors: पद्धति का उपयोग करके।

  2. केवल पहली वस्तु प्राप्त करने के लिए NSFetchRequest के -setFetchLimit: का उपयोग करके एक fetch सीमा निर्दिष्ट करें। , इतना है कि यह MySQL के फिल्टर इस्तेमाल कर सकते हैं के बजाय सभी परिणाम लाने के लिए और फिर एक बहुत स्मृति में फ़िल्टर कर, धन्यवाद:

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