1

我可以使用这样的排序描述符轻松地对字典数组进行排序:

    NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"name"  ascending:YES];

但是我正在用本地化的字符串值填充一个表,这意味着该语言的排序不再正确。

除了用本地化值重建我的字典数组之外,还有没有办法配置排序描述符来做到这一点?

我想将不可变字典保留在本地语言中,以避免深度复制和处理可变元素。这些字典源自 JSON 表示,并且可以深入。

4

1 回答 1

0

相反,您可以使用此方法:

- (id)initWithKey:(NSString *)key ascending:(BOOL)ascending comparator:(NSComparator)cmptr;

在比较器块中,您可以获取两个字典的本地化键并进行比较:

NSComparator comparator= ^NSComparisonResult (id dict1, id dict2)
{
    NSString* str1=[dict1 objectForKey: @"name"];
    NSString* str2=[dict2 objectForKey: @"name"];
    NSString* localizedStr1= NSLocalizedString(str1,str1);
    NSString* localizedStr2= NSLocalizedString(str2, str2);
    return [localizedStr1 compare: localizedStr2];
};
于 2012-09-23T01:45:12.133 回答