NSSortDescriptor na atrybucie przejściowym dla NSFetchedResultsController
Ok, początkowo chciałem to zrobićNSSortDescriptor
wnioskuNSFetchedResultsController
sortować na podstawie właściwości w moimNSManagedObject
podklasa, ale oczywiście tego nie zrobi, ponieważ NSFetchedResultsController jest ograniczony do predykatów i sortowania deskryptorów, które działają na pobranej jednostce i jej relacjach, więc zdecydowałem się utworzyć atrybut przejściowy w moim modelu danych, syntezując właściwość tego atrybutu do ivar w moimNSManagedObject
podklasa i sortuj na jej podstawie.
Po uruchomieniu otrzymałem podczas wykonywania pobierania'NSInvalidArgumentException', reason: 'keypath isActive not found in entity <NSSQLEntity SMSourceEntity id=2>'
Wiem, że to kwestia KVO, więc dodałem+ (NSSet*)keyPathsForValuesAffectingIsActive
, ale wciąż mam ten sam problem.
Co zrobiłem źle, czy wciąż brakuje mi czegoś, co mogłoby go znaleźć? Dzięki.
kod:
@implementation SMSourceEntity
@dynamic friendlyName;
@dynamic interfaceAddress;
@dynamic uniqueID;
@dynamic network;
@synthesize isActive = _isActive;
+ (NSSet*)keyPathsForValuesAffectingIsActive
{
return [NSSet setWithObject:@"isActive"];
}
@end
mój sortDescriptor:
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"isActive" ascending:NO] , nil];