【问题标题】:Xcode Swift - How to initialize a 2D array of [[AnyObject]] of as many elements you wantXcode Swift - 如何初始化包含所需元素数量的 [[AnyObject]] 二维数组
【发布时间】:2015-03-08 16:50:05
【问题描述】:

我知道我可以初始化一个 Ints 数组,例如:

var intArray = [Int](count: 10, repeatedValue: 0)

我想做的是这样的:

var array = Array(count:6, repeatedValue:Array(count:0, repeatedValue:AnyObject()))

(Xcode 返回:AnyObject 无法构造,因为它没有可访问的初始化程序)

与我初始化数组的结果相同:

var anyObjectArray : [[AnyObject]] = [[],[],[],[],[],[]]

但是如果我需要 100 行让我们说 3,那么执行上述操作是很丑的

问题是我可以在我的函数中附加如下:

// init array
var anyObjectArray : [[AnyObject]] = [[],[],[]]

//inside a for loop
anyObjectArray[i].append(someValue)

这没问题,直到我当然比数组中的行数更高。 如果我可以做类似的事情,这个问题的答案也是可以接受的:

anyObjectArray[append a empty row here][]

但这可能很愚蠢:)

我希望有办法做到这一点,因为我不喜欢这样的一行:

var anyObjectArray : [[AnyObject]] = [ [],[],[],[],[],[],[],[],[],[],[],[],[],[],[], ... etc ]

在我的页面顶部;)

感谢您的宝贵时间!

【问题讨论】:

  • 只需使用for循环添加内部数组

标签: ios arrays xcode swift


【解决方案1】:

您不需要第二个 repeatedValue 初始化程序,因为您需要一个空数组。你可以使用

var array = Array(count:6, repeatedValue:[AnyObject]())

【讨论】:

  • 我什至没有让 repeatValue 与 AnyObject 一起工作。我似乎错过了括号!谢谢你的回答!
【解决方案2】:

您可以尝试使用 2 个循环,作为网格工作:

var items: = Array<Array<Item>>()
for col in 0..<maxCol {
    var colItems = Array<Item>()
    for row in 0..<maxRow {
        colItems.append(Item())
    }
    items.append(colItems)
}
//Append as much as you want after

【讨论】:

    【解决方案3】:

    试试这个

        let columns = 27
        let rows = 52
        var array = Array<Array<Double>>()
        for column in 0... columns {
            array.append(Array(count:rows, repeatedValue:Int()))
        }
    

    【讨论】:

      【解决方案4】:

      试试这个

      let array = Array(count:6, repeatedValue:[])
      
      for (var i=0; i<array.count; i++){
          array[i] = Array(count:0, repeatedValue: AnyObject.self)
      } 
      

      代替您的代码。

      【讨论】:

        【解决方案5】:

        斯威夫特 3:

        var array = Array(repeating:[AnyObject](),count:6)
        

        【讨论】:

        • 感谢您抽出宝贵时间提供答案。正是因为像您这样乐于助人的同龄人,我们才能作为一个社区一起学习。以下是一些关于如何使您的答案出色的提示:How do I write a good answer
        • 始终记得在您发布的答案中添加说明,以便用户了解它的用途。 @Nithin
        猜你喜欢
        • 1970-01-01
        • 2020-09-29
        • 1970-01-01
        • 2011-12-08
        • 1970-01-01
        • 2012-11-29
        相关资源
        最近更新 更多