gpt4 book ai didi

objective-c - 如何从数组数组构建数组

转载 作者:行者123 更新时间:2023-11-29 13:31:45 25 4
gpt4 key购买 nike

我是 iOS 开发的新手。

我有一个 viewController,它包含一个属性,该属性是自定义类的一个对象。我们将该自定义类称为 ClassA。 ClassA 的对象有一个属性,它是另一个我们称之为 ClassB 的自定义类的对象的 NSMutableArray。 ClassB 有一个属性,它也是 CLLocation 类型对象的 NSMutableArray。

我需要在 viewController 的方法内部创建 CLLocationCoordinate2D 结构的 C 数组(CLLocationCoordinate2D 是 CLLocation 的一个属性)。这些 CLLocationCoordinate2D 中的每一个都需要来自 ClassB 和 ClassA 中的所有对象所持有的所有 CLLocation 对象。如果我理解我所做的事情,我相信我有一个 3-D 数组。

我完全不知道如何组装这个结构数组。如果它只是一个数组,我会做这样的事情:

NSUInteger numberOfSteps = [objectOfClassX count];    
CLLocationCoordinate2D coordinates[numberOfSteps];

for (NSInteger index = 0; index < numberOfSteps; index++) {
CLLocation *location = [objectOfClassX objectAtIndex:index];
CLLocationCoordinate2D coordinate = location.coordinate;

coordinates[index] = coordinate;
}

然而,我正在努力解决在第一个数组中获取每个对象的语法,然后在第二个数组中的每个对象中,然后在 CLLocationCoordinate2D 中。

最佳答案

迭代一次以获得坐标的总数,然后再次迭代将它们复制到新分配的数组中。

NSInteger coordCount = 0, coordIndex = 0;
for(ClassA *a in collectionOfA)
for(ClassB *b in a.collectionOfB)
coordCount += [b.locations count];

CLLocationCoordinate2D coords[coordCount];

for(ClassA *a in collectionOfA)
for(ClassB *b in a.collectionOfB)
for(CLLocation *location in b.locations)
coords[coordIndex++] = location.coordinate;

关于objective-c - 如何从数组数组构建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680963/

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