【问题标题】:Multidimensional Array Looping in cellForRowAtIndexPath SwiftcellForRowAtIndexPath Swift中的多维数组循环
【发布时间】:2016-01-25 17:36:12
【问题描述】:

我有一个多维数组,我想将其值显示到每个单元格中的一个 UILabel 上。

我的数组如下所示:

var arrayExample = [["beverages", "food", "suppliers"]["other stuff, "medicine"]]

我在 cellForRowAtIndexPath 中循环遍历这些值,以便它在不同的单元格(在 UILabel 上)显示适当的值:

if let onTheLabel: AnyObject = arrayOfContactsFound as? AnyObject {

                for var i = 0; i < objects!.count; i++ {


                    cell?.contactsUserHas.text = "\(onTheLabel[indexPath.row][i])" as! String

                    print("arrayOfContactsFound Printing! \(onTheLabel)")

                }

            }

打印到控制台时,我得到:

arrayOfContactsFound Printing! (
        (
        beverages,
        "supply chain",
        pharmacuticals
    )
)

但在我的标签上,我得到的是“饮料”。就是这样。我怎样才能获得其他 2 个值(或 X 数量,如果有超过或少于 3 个值)?

我的for in loop 显然没有做到这一点。假设我可以优化/修复它以显示所有值?

提前致谢。

【问题讨论】:

    标签: ios arrays swift multidimensional-array for-in-loop


    【解决方案1】:

    在您的循环中,您要多次设置标签的文本。每次设置它不会累积,它会用新文本完全替换当前文本。你会想要这样的东西:

        // Remove the cast and the loop in your code example, and replace with this
        let items = arrayOfContactsFound[indexPath.row]
        let itemsString = items.joinWithSeparator(" ")
        cell?.contactsUserHas.text = itemsString
    

    另外需要注意的是,你的演员阵容并没有多大意义。

    var arrayExample = [["beverages", "food", "suppliers"]["other stuff, "medicine"]]
    

    所以arrayExample 的类型是[[String]]。我假设表格视图中的每个单元格代表数组中的字符串数组之一。所以每个单元格代表一个[String]。所以你的items 应该是arrayExample[indexPath.row]AnyObject 的演员表没有太大意义。如果有的话,您会将其转换为 [[AnyObject]],但没有理由这样做,因为编译器应该已经知道它是 [[String]]

    【讨论】:

    • 有点困惑...这是 3 种不同的方法还是 2 种不同的方法?另外,我的数组是AnyObject 数组。您发布的最后一行没有 joinWithSeparator(" ") 方法。 @andrewcarter
    • 我尝试了所有 3 种方法。它不起作用。它实际上不输出任何东西,只是标签上的(。您可以参考我发布的内容提供完整的代码吗? @安德鲁卡特
    • 我将文本调整为您的实现应有的样子。
    • 是的,现在可以使用。也感谢您对向下铸造的解释。我将其更改为 [[String]]。我之前从 Parse 中提取数组然后尝试转换它时遇到错误,因此我将其设置为 AnyObject。应该从一开始就完成 [[String]] !现在它工作顺利。再次感谢。 @andrewcarter
    • 还想知道如何从数组中提取单个值?如何索引它并将其放在不同的标签上。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2022-12-01
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2018-07-30
    • 2013-06-25
    相关资源
    最近更新 更多