2013-12-20 24 views
0

我目前正在整理我的NSArray按字母顺序是这样的:由字母顺序首先由特定的NSString事后排序一个NSArray

NSArray *tempArr = [dictionaryFinishedProjects keysSortedByValueWithOptions:0 usingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) 
{ 
    BOOL firstImportant = [obj1 hasPrefix:@"!"]; 
    BOOL secondImportant = [obj2 hasPrefix:@"!"]; 
    if(firstImportant && !secondImportant) 
    return 
    NSOrderedAscending; 
    if(secondImportant && !firstImportant) 
    return 
    NSOrderedDescending; 
    return 
    [obj1 caseInsensitiveCompare:obj2]; 
}]; 

我现在遇到的问题是,我需要一个额外的也是。我想首先显示字符串为@"firstEntry的所有条目,然后显示上述代码中显示的顺序。什么是实现这一目标的最佳方式?

+0

我创建了一个名为HMFTableViewOrganizer的类,它可以帮助或给你一个想法。 https://github.com/Hackmodford/HMFTableViewOrganizer – Hackmodford

+0

您是否为当前算法添加了对'firstEntry'的检查?它没有工作吗? – Wain

+0

您可以在分拣后提供一些样本数据和期望的结果吗? –

回答

1

您可以在自定义类创建方法/秒,如果你有一个,你可以使用sortedArrayUsingSelector:方法,也可以创建块/秒,不同的排序选项,只是把它传递给sortedArrayUsingComparator:方式类似:

id sort1 = ^(NSString *obj1, NSString *obj2){ 
    return [obj1 compare:obj2]; 
}; 


NSArray *tempArr = [[array allKeys] sortedArrayUsingComparator:sort1]; 
相关问题