在objective-c中按字母顺序对数组进行排序
问题描述:
我想按照objective-c中的字母顺序对数组进行排序。我已经用这种方式实现了。在objective-c中按字母顺序对数组进行排序
//Sorting of the Array
NSArray *sortedArray = [arrName sortedArrayUsingComparator:^(Cars *firstObject, Cars *secondObject) {
return [firstObject.str_name compare:secondObject.str_name];
}];
arrName =[NSMutableArray arrayWithArray:sortedArray];
的问题是所有的数字出现,然后captial字母的单词,然后小写字母项目...
我希望它出现alphabetically->意思是说,大写字母和小写字母可能混合。
答
用compare:
替换为caseInsensitiveCompare:
。
由于arrName
是可变的,请改用'sortUsingComparator'方法。它将排序可变数组而不创建新数组。
[arrName sortUsingComparator:^(Cars *firstObject, Cars *secondObject) {
return [firstObject.str_name caseInsensitiveCompare:secondObject.str_name];
}];
答
试试这个,
NSArray *array=[[NSArray alloc]initWithObjects:@"Object1",@"object1", nil];
array =[array sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSLog(@"%@",array);
+0
这不起作用。它不是一个字符串数组,它是一个对象数组,它是对象属性的排序。 – rmaddy 2013-02-19 03:52:15
真棒..谢谢...... – lakesh 2013-02-19 03:48:06
然后我是正确的说法是sortedArray有可能成为类NSMutableArray里的? – lakesh 2013-02-19 03:58:00
不,你不需要'sortedArray'。 – rmaddy 2013-02-19 03:58:52