是的,有他们的帖子,但没有一个为我工作,我需要排序一个多维数组, 这是我的数组看起来像
(
{
FileDate = "2014-02-21T19:08:50Z";
FileName = "Cyber";
FileSize = 65;
FileURL = "Inciden.pdf";
},
{
FileDate = "2014-02-21T19:08:47Z";
FileName = "Products";
FileSize = 64;
FileURL = "Plan.pdf";
},
{
FileDate = "2014-02-21T19:08:36Z";
FileName = "Network";
FileSize = 70;
FileURL = "cPlan.pdf";
},
)
简单的NSArray * Fulldata; 现在任何人都可以告诉我一个最佳的排序方式。
答案 0 :(得分:0)
您发布了一系列字典的转储。有许多方法可以让您以不同的方式对数组进行排序。
我偏向于基于块的方法,例如sortedArrayUsingComparator(用于不可变数组)或sortUsingComparator(用于对可变数组进行排序)。
这两种方法都采用比较器块,比较数组中的2个对象并决定哪个应该是第一个,为每个比较返回NSOrderedDescending或NSOrderedAscending。
系统然后通过询问您的代码块来比较对象组来对数组进行排序。
您还可以使用使用排序描述符的方法(例如sortedArrayUsingDescriptors:
)如果您需要使用多个键进行排序(例如,根据姓氏对名称数组进行排序,那么基于描述符的方法是更好的选择)姓氏中的名字,然后是名字中的年龄。)
为了帮助您对数组进行排序,我们需要知道您要使用哪种标准对其进行排序。
答案 1 :(得分:0)
我假设您想要按日期排序......
NSArray *sortedArray = [FullData sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"FileDate" ascending:NO]];
应该这样做。
答案 2 :(得分:-1)
尝试使用此方法
- (NSArray *) sortArray: (NSArray*)result sortedKey:(NSString*)sortedKey ASC:(BOOL)ASC
{
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortedKey
ascending:ASC];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [result sortedArrayUsingDescriptors:sortDescriptors];
return sortedArray;
}
并使用如下:
NSArray *sortedArr = [self sortArray: Fulldata sortedKey:@"FileSize" ASC:NO];
此代码将根据FileSize值对数组进行排序。
如果您希望更大或更小或更小,只需将ASC参数更改为YES / NO