gpt4 book ai didi

iphone - 以动态方式将数组分成多个?对象

转载 作者:行者123 更新时间:2023-12-01 19:22:02 25 4
gpt4 key购买 nike

我目前有这种方法:

-(void)seperateGuides
{
DLog("GetGuideListCount: %i", [[appDelegate getGuideList] count]);

columnOneArray = [[NSMutableArray alloc] init];
columnTwoArray = [[NSMutableArray alloc] init];
columnThreeArray = [[NSMutableArray alloc] init];

for (int i = 0; i < [[appDelegate getGuideList] count]; i = i + 3) {
[columnOneArray addObject:[[appDelegate getGuideList]objectAtIndex:i]];
}

for (int i = 1; i < [[appDelegate getGuideList] count]; i = i + 3) {
[columnTwoArray addObject:[[appDelegate getGuideList]objectAtIndex:i]];
}

for (int i = 2; i < [[appDelegate getGuideList] count]; i = i + 3) {
[columnThreeArray addObject:[[appDelegate getGuideList]objectAtIndex:i]];
}
}

并且需要更加动态地执行此操作,因此我可以定义所需的数组数量,然后获取数组。

我正在考虑的不同可能性是使它成为一个多维数组(尽管我不确定如何在Objectvie-C中进行处理),或者使该方法简单地遍历我定义的次数,存在问题我不太确定如何获取不同的数组。

一个简单的算法或其他可能的解决方案将不胜感激。

最佳答案

您所描述的算法听起来与我们将多副纸牌放到多只手中时的效果相同,所以我会这样做:

- (NSArray *)dealObjects:(NSArray *)objects intoArrays:(NSInteger)numArrays
{
NSMutableArray *arrays = [NSMutableArray arrayWithCapacity:numArrays];
for (a = 0; a < numArrays; a++) {
[arrays addObject:[NSMutableArray arrayWithCapacity:[objects count] / numArrays];
}
for (i = 0; i < [objects count]; i++) {
[[arrays objectAtIndex:i % numArrays] addObject:[objects objectAtIndex:i]];
}
return arrays;
}

关于iphone - 以动态方式将数组分成多个?对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868060/

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