gpt4 book ai didi

objective-c - 如何从 Objective-C 中的较大数组中选择较小的数组?

转载 作者:行者123 更新时间:2023-11-28 18:40:11 24 4
gpt4 key购买 nike

我需要从 75 个对象的 NSMutableArray 中挑选 32 个不同的对象。它可以是 1 到 32、2 到 33 或 10 到 42。我应该使用什么函数来获取新数组?对不起,我是菜鸟。

最佳答案

如果您想从随机索引中获取 N 个连续的对象,请尝试以下操作:

NSArray *arrayWithNConsecutiveObjects(NSArray *arr, int n)
{
int subIdx = arc4random_uniform((unsigned) (arr.count - n));

return [arr subarrayWithRange:NSMakeRange(subIdx, n)];
}

如果需要32个随机对象,可以扩展这个方法对数组进行随机排序:

NSArray *arrayWithNObjects(NSArray *arr, int n)
{
arr = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
// random sort
return arc4random_uniform(3) - 1; // one of -1, 0, and 1
}];

int subIdx = arc4random_uniform((unsigned) (arr.count - n));

return [arr subarrayWithRange:NSMakeRange(subIdx, n)];
}

关于objective-c - 如何从 Objective-C 中的较大数组中选择较小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11923684/

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