如何通过NSArray内对象内的对象对NSArrays进行排序?

时间:2015-01-31 05:48:45

标签: ios objective-c xcode

思考初始。假设我有2个对象ABA的每个实例都有一个变量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]];

只是不打算削减它。有什么想法吗?

1 个答案:

答案 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]];