• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 比较数组中的数字

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:52:17 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

enter image description here

问题是因为应该将 100 到 210 个新样本添加到表中的数字之间存在差距。尽可能使用 50 的间隙,以便自动生成的样本看起来像这样。

enter image description here

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

如果我的问题有任何令人困惑的地方,请添加评论,我会相应地更新它,感谢您的帮助。



Best Answer-推荐答案


要修复差距,您必须跟踪最后一个 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。

关于ios - 比较数组中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31520637/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap