繁体   English   中英

cellForRowAtIndexPath Swift中的多维数组循环

[英]Multidimensional Array Looping in cellForRowAtIndexPath Swift

我有一个多维数组,我想在每个单元格中的一个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个值(如果大于或小于3个值,则取X值)?

我的for in loop显然没有解决问题。 假设我可以优化/修复该问题以显示所有值?

提前致谢。

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

    // 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] AnyObjectAnyObject没有太大意义。 如果有什么需要将其强制转换为[[AnyObject]] ,则没有理由因为编译器应该已经知道它是[[String]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM