我有这个对象,它有一个名为nameEN
的属性,它是对象在英语中的名称。当在屏幕上示出了该对象时,它是这样的:通过对包含数字的属性的本地化描述对对象数组进行排序
NSLocalizedStringFromTable([myObject nameEN]);
换句话说,名称是通过使用NSLocalizedStringFromTable
本地化。
说,我有很多的数组对这些对象的,我要排序的本地化名称数组。
的问题是,对象有名字,如House 1
,House 2
... House 10
等
当我那种使用此代码:
NSArray *sorted = [unsortedArray sortedArrayUsingComparator:^NSComparisonResult(MyOBject *p1, MyOBject *p2){
NSString *name1 = NSLocalizedStringFromTable([p1 nameEN], @"MyTable", nil);
NSString *name2 = NSLocalizedStringFromTable([p2 nameEN], @"MyTable", nil);
return [name1 localizedCompare:name2];
}];
我得到的命令是House 1
,House 10
,House 2
... 10前2,20前3等等。
如何使用NSComparisonResult
对此进行排序?
你必须切断数字,将其转换为“NSNumber”或“NSInteger”并按数字排序。 – shallowThought