[英]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]
。 AnyObject
为AnyObject
没有太大意义。 如果有什么需要将其强制转换为[[AnyObject]]
,则没有理由因为编译器应该已经知道它是[[String]]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.