思考初始。假设我有2个对象A
和B
,A
的每个实例都有一个变量B
,每个B
都有一个NSNumber
变量。< / p>
我有一个NSArray Array
,其中包含A
个实例,我想根据B中的NSNumber
变量对其进行排序。所以正常的方法是
NSArray *array = [[NSArray alloc] initWithObjects:a1,a2,a3,a4,a5,nil];
NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"b" ascending: YES];
array = [array sortedArrayUsingDescriptors: [NSArray arrayWithObject:sortOrder]];
只是不打算削减它。有什么想法吗?
答案 0 :(得分:2)
只要您使用正确的密钥进行比较,分类就可以正常使用此方法:
NSArray *array = [[NSArray alloc] initWithObjects:a1,a2,a3,a4,a5,nil];
NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"b.nsnumbervar" ascending: YES];
array = [array sortedArrayUsingDescriptors: [NSArray arrayWithObject:sortOrder]];