NSSortDescriptor - Ordenar descritor baseado em outro array
Eu tenho um aplicativo de dados do núcleo. E eu quero buscar um tipo de objetoUser
. User
tem a propriedadeuserId
.
Eu tenho outro array comuserId
s[1, 4, 3, 5]
. E eu gostaria de criar umNSSortDescriptor
que classifica meuUser
objetos com base na ordem douserId
s na matriz.
Isso é possível, e como devo fazer isso?
Atualizar
Eu tentei agora o seguinte.
Eu adicionei uma propriedade transformável ao meu objeto User, onde eu armazeno a matriz ids do usuário.
Eu tentei o seguinte descritor de classificação:
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;
}];
E estou recebendo o seguinte erro:
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.'
Atualização 2
Também gostaria de adicionar um relacionamentoFollowers
entreUser
objetos. Alguma idéia de como esse relacionamento deve ser? Veja a imagem anexada. Isso está correto?