ठीक है, मैं शुरू में 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];
धन्यवाद, इसलिए यदि मैं कभी भी अपने एफआरसी के साथ क्षणिक गुणों का काम करना चाहता हूं, तो मुझे इसे उपclass करना होगा, परिणाम प्राप्त करना होगा, फिर मेरी संपत्ति के आधार पर प्राप्त वस्तु के सरणी को क्रमबद्ध करें .ChangeContent :? क्या इस का कोई मतलब निकलता है? – ambientlight
मुझे लगता है कि यह करना बहुत कठिन होगा, क्योंकि आपको बहुत सी कोड लिखना होगा या एफआरसी (जैसे पेजिनेटेड ऑन-डिमांड लोडिंग) का उपयोग करने के अधिकांश लाभों को फेंकना होगा। आपको केस-दर-मामले आधार पर अन्य विकल्पों पर विचार करना चाहिए। विभिन्न वर्गों या उसके जैसे कुछ के लिए कई एफआरसी का उपयोग करना पसंद है। – Wain
पूरी तरह से समझ में आता है, धन्यवाद। – ambientlight