【问题标题】:Loop through NSArray to collect specific objects循环遍历 NSArray 以收集特定对象
【发布时间】:2023-03-26 04:57:01
【问题描述】:

我现在无法收集我的想法,并且无法找出以下问题的解决方案:

我有一个由 5 个 NSObjects 组成的数组,Object-X。每个对象都有两个对象,Object-Y。这两个对象中的每一个都有 50 个对象,即 Object-Z。

类似的东西。

Object-X 0:
    Object-Y 0:
        Object-Z: 0
        Object-Z: 1
        Object-Z: 2
        ...
    Object-Y 1:
        Object-Z: 0
        Object-Z: 1
        Object-Z: 2
        ...
Object-X 1:
    Object-Y 0:
        Object-Z: 0
        Object-Z: 1
        Object-Z: 2
        ...
    Object-Y 1:
        Object-Z: 0
        Object-Z: 1
        Object-Z: 2
        ...
Object-X 2:
    Object-Y 0:
        Object-Z: 0
        Object-Z: 1
        Object-Z: 2
        ...
    Object-Y 1:
        Object-Z: 0
        Object-Z: 1
        Object-Z: 2
        ...
 ...

五十个对象(Object-Z)中的每一个都有一个 CLLocation。我首先遍历所有 500 个对象,并计算用户当前位置与对象的距离。

然后我想做的(最好同时,如果可能的话)是从每个 Object-X 中的每个 Object-Y 中获取最接近的 Object-Z 并将其插入到数组中,所以我最终得到10 个对象。

【问题讨论】:

    标签: objective-c for-loop nsarray


    【解决方案1】:

    不是计算距离,而是然后找到最近的10个物体,也许

    1. 例如分派 5 个块/线程(使用 GCD ... 或常见的多线程方法),每个
    2. 计算100个距离(对于Object-Y[0]和Object-Y[1]的一些Object-X[i])同时
    3. 以最小距离跟踪对象,Object-Y[0] 和 Object-Y[1]

    当块/线程完成时,它们可以将最大对象添加到数组中。

    【讨论】:

      【解决方案2】:

      距离的存储位置并不完全清楚,但如果它在 ObjectZ 上,那么您可以执行[objectXs valueForKeyPath:@"objectYs.objectZs.@min.distance"] 之类的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-03
        • 1970-01-01
        • 2011-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-25
        • 1970-01-01
        相关资源
        最近更新 更多