2011-04-01 43 views
1

我不能在瞬间收集我的想法和有问题找出解决以下几点:遍历NSArray中收集特定对象

我有5 NSObjects数组,对象-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 
     ... 
... 

50个对象(Object-Z)中的每一个都有一个CLLocation。我首先浏览所有500个对象,然后计算用户当前位置和对象之间的距离。

然后我想要做的(最好在同一时间,如果可能的话)是从每个Object-X中的每个Object-Y中取最接近的Object-Z并将其插入到一个数组中,以便最终有10个物体。

回答

0

代替计算距离,并且然后找到10个接近的对象,说不定

  1. 调度,比方说,5块/线程(使用GCD ...或一个共同的多线程的方法),其将每个
  2. 计算100米的距离(为Object-Y[0]和一些Object-X[i]Object-Y[1]),同时
  3. 保持轨道与所述最小距离的对象的,对于Object-Y[0]Object-Y[1]

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

0

目前还不完全清楚距离的存储位置,但如果它位于ObjectZs上,那么您可以执行类似[objectXs valueForKeyPath:@"[email protected]"]的操作。