gpt4 book ai didi

ios - 奇数或偶数的 NSRange 数组

转载 作者:行者123 更新时间:2023-11-28 10:22:32 25 4
gpt4 key购买 nike

我有一个包含 977 个数据的数组,我一直试图在 UITableView 中将其拆分为 20 个部分,但我无法正确处理,我正在尝试动态执行。就像如果我得到一个 312 或 32 或 545 的数组,方程应该除以它,并添加数组中的最后一个奇数元素,我将新数据放在数组的数组中。

所以这就是我正在做的:

var dataof977 = Mydata()
var mutA = NSMutableArray()

for (var i = 0; i < 19; i++)
{
var halfArray : NSArray!
var theRange = NSRange()

theRange.location = i*19;
theRange.length = dataof977.afa.count / 19
halfArray = dataof977.afa.subarrayWithRange(theRange)
mutA.addObject(halfArray)
}

注意: dataof977 是类的引用,afa 是一个字符串数组。

我在这里错过了什么?s

最佳答案

三件事:

  1. 您需要从前一个停止的地方开始每个location。为此,引入一个 location 变量来跟踪您在原始数组中的位置。
  2. 您的某些部分将需要更多项,因为您的 count 可能不是 20 的倍数。我认为您最好的办法是给第一个 n 部分一个额外的项项目来弥补剩菜。
  3. 您的循环需要迭代 20 次,而不是 19 次。我已将其更改为使用 for in,这是更好的 Swift 风格。

var mutA  = NSMutableArray()

let sublength = dataof977.afa.count / 20
let leftovers = dataof977.afa.count % 20

// location of each new subarray
var location = 0

for i in 0..<20
{
var length = sublength

// The first sections will have 1 more each
if i < leftovers {
length++
}

let theRange = NSMakeRange(location, length)

let halfArray = dataof977.afa.subarrayWithRange(theRange)
mutA.addObject(halfArray)

// move location up past the items we just added
location += length
}

关于ios - 奇数或偶数的 NSRange 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32933270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com