gpt4 book ai didi

iOS 比较 NSArray 中 NSString 的 intValue

转载 作者:行者123 更新时间:2023-11-29 13:42:09 26 4
gpt4 key购买 nike

我有一个 NSDictionary 字典,其中包含以下内容: { 123 = , 125 = , ... 73 =

123、125、..、73 是 NSString。

我想要一个包含按 ID 排序的对象的 NSArray:

[ <MyObject:73>, <MyObject:123>, ..., <MyObject:125> ]

这样做最有效的方法是什么?

我使用 [[dico allKeys] sortedArrayUsingSelector:@selector(compare:)] 来键入有序键列表,但由于键是 NSString,所以它们的排序方式不正确(我可以结束到 [ 42, 46, 5, 56. ...]。

最佳答案

当对表示数字的 NSString 进行排序时,您希望使用 NSNumericSearch 选项将它们像数字一样排序,例如1 < 20 < 100 < 1000。这是一个例子:

    NSMutableDictionary* d = [NSMutableDictionary dictionaryWithCapacity:3];
[d setObject:@"C" forKey:@"3"];
[d setObject:@"A" forKey:@"1"];
[d setObject:@"B" forKey:@"2"];

NSArray* sortedKeys = [d keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch];
}];

NSLog(@"%@",sortedKeys);

NSArray* sortedObjs = [d objectsForKeys:sortedKeys notFoundMarker:[NSNull null]];
NSLog(@"%@", sortedObjs);

关于iOS 比较 NSArray 中 NSString 的 intValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790627/

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