比较数组中的数字

时间:2015-07-20 15:35:59

标签: ios

我有一组称为samples的核心数据对象,每个样本都有一个depthFrom和depthToo。我将每个样本加载到tableView中以显示depthFrom和Too。我需要检查值之间的差距,如果有,请插入新样本。

表中的样本可能如下所示:depthFrom和depthToo,

enter image description here

问题在于,应该在表格中添加100到210个新样本的数字之间存在差距。使用50的间隙尽可能使用自动生成的样本。

enter image description here

我不确定如何比较这些值,我宁愿这样做,因为视图在调用cellForRowAtIndexPath之前加载,所以我不需要再次重新加载表。我正在考虑循环遍历每个值并比较它们,但是所有这些都在同一个数组中,所以我不知道我将如何做到这一点。我在我的应用程序中正确显示所有数据只是我需要考虑的差距,如果我能找到比较数组中的值的方法,那么我可以管理添加新对象我只需要在右边指向方向,因为这对我来说是新的。

如果有关于我的问题的任何内容令人困惑,那么只需添加评论,我会相应更新,感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

要修复间隙,您必须跟踪最后一个depthTo,并检查它与当前样本之间是否存在差距。如果有,请插入间距为50 *的样品,直到我们到达当前样品。

这是一个伪代码解决方案:

samples = NSMutableArray

int lastDepthTo = 0;

for (i = 0; i < [samples count]; i++) {
    s = samples[i]

    // add missing samples (upto current s.depthFrom)
    while (s.depthFrom > lastDepthTo) {

        genDepthTo = MIN(d.depthFrom, lastDepthTo+50)
        generated = new sample(depthFrom: lastDepthTo, depthTo: genDepthTo)
        [samples insert:generated atIndex:i]

        i++ // increment i to skip inserted sample
        lastDepthTo = genDepthTo
    }

    lastDepthTo = s.depthTo
}

注意:这是未经测试的,对于i的索引,可能会被1关闭。