通过包含数字的属性的本地化描述对对象数组进行排序

时间:2016-12-02 20:37:32

标签: ios iphone sorting nsarray

我有这个对象有一个名为DF_New <- rbind.fill(df1,df2) 的属性,它是该对象在英语中的名称。当此对象显示在屏幕上时,它是这样的:

nameEN

换句话说,名称是使用NSLocalizedStringFromTable([myObject nameEN]); 进行本地化的。

说我在阵列上有很多这些对象,我想用本地化名称对该数组进行排序。

问题是对象的名称类似NSLocalizedStringFromTableHouse 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 1House 10 ... 10之前的2,之前的20,以及之后的一个。

如何使用House 2对其进行排序?

2 个答案:

答案 0 :(得分:1)

找到答案:只需使用localizedCompare:更改localizedStandardCompare:即可,效果非常好。

答案 1 :(得分:0)

尝试使用rangeOfCharacter方法在启用NSBackwardsSearch选项的情况下查找最后一个空格。使用此范围,您可以划分字符串并将包含名称的第一部分与包含数字的第二部分进行比较。