Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 比较数组中的数字_Ios - Fatal编程技术网

Ios 比较数组中的数字

Ios 比较数组中的数字,ios,Ios,我有一个名为samples的核心数据对象数组,每个sample都有depthFrom和depthTo。我将每个示例加载到tableView中,以显示depthFrom和。我需要检查值之间的差距,如果有,插入一个新的样本 表中的样本可以如下所示,带有depthFrom和depthTo 问题在于,从100到210的数字之间存在差距,应将新样本添加到表格中。尽可能多地使用50的间隙,以便在自动生成样本时看起来像这样 我不确定的是如何比较这些值,我宁愿在调用cellforrowatinexpath之

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

表中的样本可以如下所示,带有depthFrom和depthTo

问题在于,从100到210的数字之间存在差距,应将新样本添加到表格中。尽可能多地使用50的间隙,以便在自动生成样本时看起来像这样

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


如果我的问题有任何令人困惑的地方,那么只需添加一条注释,我会相应地更新它,谢谢您的帮助。

若要修复差距,您必须跟踪最后一个
深度,并检查它与当前示例之间是否有差距。如果有,插入间隔为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
}
samples=NSMutableArray
int lastDepthTo=0;
对于(i=0;i<[样本计数];i++){
s=样品[i]
//添加缺失样本(截至当前s.depthFrom)
而(s.depthFrom>lastDepthTo){
genDepthTo=最小值(d.depthFrom,lastDepthTo+50)
生成=新样本(depthFrom:lastDepthTo,depthTo:genDepthTo)
[样本插入:生成索引:i]
i++//递增i以跳过插入的样本
lastDepthTo=genDepthTo
}
lastDepthTo=s.depthTo
}

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

看起来像一个for循环,同时跟踪最后一个
depthTo
并与当前
depthFrom
进行比较。你能告诉我你是如何解决这个问题的吗?这正是我需要的,谢谢。