8
के लिए क्षणिक विशेषता पर

ठीक है, मैं शुरू में NSFetchedResultsController मेरी NSManagedObject उपवर्ग में संपत्ति के आधार पर सॉर्ट करने के लिए के लिए एक अनुरोध के NSSortDescriptor बनाना चाहते थे, लेकिन यह स्पष्ट रूप से यह काम नहीं चलेगा, क्योंकि NSFetchedResultsController विधेय और प्रकार के लिए सीमित है वर्णनकर्ता जो प्राप्त इकाई और उसके संबंधों पर काम करते हैं, इसलिए मैंने अपने डेटा मॉडल में एक क्षणिक विशेषता बनाने का निर्णय लिया, इस विशेषता के लिए संपत्ति को NSManagedObject सबक्लास में ivar में संश्लेषित किया, और इसके आधार पर क्रमबद्ध करें।NSSortDescriptor NSFetchedResultsController

जब यह चल रहा है, मैं निष्पादित करते समय लाने 'NSInvalidArgumentException', reason: 'keypath isActive not found in entity <NSSQLEntity SMSourceEntity id=2>'

मैं जानता हूँ कि इस KVO मुद्दा है मिल गया, तो मैं + (NSSet*)keyPathsForValuesAffectingIsActive जोड़ लिया है, लेकिन अभी भी एक ही समस्या है।

मैं गलत क्या किया, या मैं अभी भी यह मेरी मुख्यपथ प्राप्त करने के लिए कुछ याद कर रहा हूँ? धन्यवाद।

कोड:

@implementation SMSourceEntity 

@dynamic friendlyName; 
@dynamic interfaceAddress; 
@dynamic uniqueID; 
@dynamic network; 
@synthesize isActive = _isActive; 

+ (NSSet*)keyPathsForValuesAffectingIsActive 
{ 
    return [NSSet setWithObject:@"isActive"]; 
} 

@end 

मेरी sortDescriptor:

request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"isActive" ascending:NO] , nil]; 

उत्तर

16

यह एक KVO मुद्दा नहीं है, यह तुम क्या करने की कोशिश कर रहे हैं क्या साथ कोई समस्या है एफआरसी की आवश्यकता है कि तरह कर सकते हैं अंतर्निहित SQLite स्टोर पर लागू किया जाना चाहिए। दूसरे शब्दों में, आप केवल गैर-क्षणिक विशेषताओं को फ़िल्टर और सॉर्ट कर सकते हैं। आपको विशेषता को गैर-क्षणिक बनाने की आवश्यकता होगी ताकि इसका मूल्य स्टोर में सहेजा जा सके और SQLite के लिए उपलब्ध हो।

एफआरसी के लिए, केवल अनुभाग का नाम कुंजी पथ विशेषता क्षणिक हो सकती है।

+0

धन्यवाद, इसलिए यदि मैं कभी भी अपने एफआरसी के साथ क्षणिक गुणों का काम करना चाहता हूं, तो मुझे इसे उपclass करना होगा, परिणाम प्राप्त करना होगा, फिर मेरी संपत्ति के आधार पर प्राप्त वस्तु के सरणी को क्रमबद्ध करें .ChangeContent :? क्या इस का कोई मतलब निकलता है? – ambientlight

+1

मुझे लगता है कि यह करना बहुत कठिन होगा, क्योंकि आपको बहुत सी कोड लिखना होगा या एफआरसी (जैसे पेजिनेटेड ऑन-डिमांड लोडिंग) का उपयोग करने के अधिकांश लाभों को फेंकना होगा। आपको केस-दर-मामले आधार पर अन्य विकल्पों पर विचार करना चाहिए। विभिन्न वर्गों या उसके जैसे कुछ के लिए कई एफआरसी का उपयोग करना पसंद है। – Wain

+0

पूरी तरह से समझ में आता है, धन्यवाद। – ambientlight

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