gpt4 book ai didi

objective-c - 使用本地化字典值对 NSArray 进行排序

转载 作者:行者123 更新时间:2023-12-03 17:24:24 25 4
gpt4 key购买 nike

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

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

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

除了使用本地化值重建字典数组之外,还有其他方法可以配置排序描述符来执行此操作吗?

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

最佳答案

您可以使用此方法:

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

在比较器 block 中,您获取两个字典的本地化键并比较它们:

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];
};

关于objective-c - 使用本地化字典值对 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11306580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com