NSSortDescriptor - Deskryptor sortowania oparty na innej tablicy
Mam podstawową aplikację do przetwarzania danych. I chcę przynieść jeden rodzaj obiektu,User
. User
mieć nieruchomośćuserId
.
Mam inną tablicę zuserId
s,[1, 4, 3, 5]
. I chciałbym stworzyćNSSortDescriptor
to sortuje mojeUser
obiekty oparte na kolejnościuserId
s w tablicy.
Czy to możliwe i jak mam to zrobić?
Aktualizacja
Próbowałem teraz następujących rzeczy.
Dodałem właściwość transformowalną do mojego obiektu użytkownika, w którym przechowuję tablicę identyfikatorów użytkowników.
Próbowałem następującego deskryptora sortowania:
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"userId" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
NSUInteger idx1 = [self.user.followingIds indexOfObject:[obj1 valueForKey:@"userId"]];
NSUInteger idx2 = [self.user.followingIds indexOfObject:[obj2 valueForKey:@"userId"]];
return idx1 - idx2;
}];
I otrzymuję następujący błąd:
Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. [<__NSCFNumber 0xa337400> valueForUndefinedKey:]: this class is not key value coding-compliant for the key userId. with userInfo {
NSTargetObjectUserInfoKey = 2502;
NSUnknownUserInfoKey = userId;
}
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFNumber 0xa337400> valueForUndefinedKey:]: this class is not key value coding- compliant for the key userId.'
Aktualizacja 2
Chciałbym również dodać relacjęFollowers
pomiędzyUser
przedmioty. Jakieś pomysły, jak powinien wyglądać ten związek? Zobacz załączony obraz. Czy to jest poprawne?