我正在从解析中检索多个数组并将它们存储在数组中。它目前正在运行,但当我在[indexpath.row]
处应用文字时,标签为["cat", "dog"]
,而我想要cat, dog
。
var animal: [[String]] = []
if let displayIntake = object["Animal"] as? [String]{
self.animal.append(displayIntake)
print(self.animal)
//prints ["cat", "dog"]
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: TutorBoxCell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! BoxCell
cell.info.text = "\(animal[indexPath.item])"
//info is a UILabel
//on the app the label appears ["cat", "dog"] instead I need it to be cat, dog
答案 0 :(得分:3)
您可以在阵列上使用joinWithSeparator
。
它将数组元素作为String连接,并以您作为参数传递的String分隔。
示例:
yourArray.joinWithSeparator(", ")
给出
猫,狗
如果它是一个数组数组,请使用它:
yourArray.map { $0.joinWithSeparator(", ") }.joinWithSeparator("")
这意味着我们将每个子数组加入","然后我们将所有内容都加入String。
考虑到您在评论中向我展示的数组内容,正确的组合将是这样的例子:
let animals = [ ["dog", "cat"], ["chicken", "bat"] ]
let results = animals.map { $0.joinWithSeparator(", ") }
for content in results {
print(content)
}
打印
狗,猫 鸡,蝙蝠
只是为了完成这个例子:
let all = results.joinWithSeparator(" - ")
print(all)
打印
狗,猫 - 鸡,蝙蝠