我正在使用
获取楼层名称并存储在_floorNames (NSMutableArray)
中
_floorNames=[conferenceHall floorDetails:office];
NSLog(@"floor names=%@",_floorNames);
这将打印这样的楼层名称。
GROUND,
THIRD,
FIRST,
SECOND
现在我想将那个楼层命名为NsMutableArray为
GROUND,
FIRST,
SECOND,
THIRD
我用过
NSSortDescriptor *aa=[[NSSortDescriptor alloc]initWithKey:floor ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
NSArray *descriptors = [NSArray arrayWithObjects:aa, nil];
a = [array sortedArrayUsingDescriptors:descriptors];
但它会使我的应用程序崩溃。 任何建议......
答案 0 :(得分:4)
试试这个,
NSArray *arrFloorNames=[[NSArray alloc]initWithObjects:@"GROUND",@"THIRD",@"FIRST",@"SECOND", nil];
arrFloorNames = [arrFloorNames sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSLog(@"%@",arrFloorNames);
答案 1 :(得分:0)
你想要的是你永远不会得到!!!
“GROUND,THIRD,FIRST,SECOND”到“GROUND,FIRST,SECOND,THIRD”就是你想要的。
没有算法可以根据数字的内部表示对这些字符串进行排序。这就像0..1..2..3。您想要用英语对这些整数进行排序。排序可以按字母顺序排列,因此您的结果将为First,Groung,Second,Third。
如何实现?
您需要创建一个字典对象,其映射值为Third to 3,second to 2,ground to 0.然后对这些数值进行排序。然后根据值(0,1,2etc)获取Keys。