gpt4 book ai didi

objective-c - 使用 NSInterger 值对 NSMuatbleArray 进行排序

转载 作者:行者123 更新时间:2023-11-29 04:14:16 25 4
gpt4 key购买 nike

我想对里面有 NSInteger 值的 NSMutableArray 进行排序。我尝试使用这个解决方案:

 NSArray *sorted = [array sortedArrayUsingSelector:@selector(compare:)];

它几乎成功了,所以我想问为什么不是一切都好。以下是数据示例:

not sorted = (
30,
42,
54,
6,
18
)

sorted = (
18,
30,
42,
54,
6
)

我们可以看到它对除数组末尾的 6 个值之外的所有内容进行了排序。

为什么会发生这种情况?

谢谢。

完整方法:

- (void) initialize{
NSInteger min = 30;
NSInteger interval = 12;
NSInteger count = floor(60/interval);

for (int i = 0; i < count; i++) {

[array addObject:[NSString stringWithFormat:@"%i",min]];
min +=interval;

if (min > 60)
min -= 60;
}

//DLog(@"not sorted = %@",minutes);
array = [[array sortedArrayUsingSelector:@selector(compare:)] mutableCopy];
//DLog(@"sorted = %@",minutes);

}

最佳答案

在上述情况下您会遇到问题,因为您正在对字符串值而不是 NSNUMBER 进行排序。您必须使用 NSNumber 来添加整数对象。然后做类似的事情:

      NSMutableArray *array = [[NSMutableArray alloc ] initWithObjects:
[NSNumber numberWithInt:10],
[NSNumber numberWithInt:50],
[NSNumber numberWithInt:5],
[NSNumber numberWithInt:3],
nil];

NSLog(@"SORTED = %@",[array sortedArrayUsingSelector:@selector(compare:
)]);

这将为您提供一个排序数组。

关于objective-c - 使用 NSInterger 值对 NSMuatbleArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928049/

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