【发布时间】:2015-01-11 13:04:26
【问题描述】:
我有类产品
class Products {
var name:String = ""
var number:Int = 0
init(name: String, number: Int) {
self.name = name
self.number = number
}
}
然后在视图控制器中
var productFirst:[Products] = [Products(name: "First", number: 1)]
var productSecond:[Products] = [Products]()
我使用 productFirst 来填充 tableView。
我想将选定的行添加到 productSecond 并且它可以工作:
productSecond.append(productFirst[indexPath.row])
但我不想复制数组中的项目,所以我做了
if !contains(productSecond, productFirst[indexPath.row]) {
productSecond.append(productFirst[indexPath.row])
}
我得到错误。如何改变它?当 productFirst 和 productSeconds 只是字符串数组时,它可以正常工作,但现在我需要对象。
关于错误:首先是“无法找到接受所提供参数的“!”的重载。删除感叹号后,它是“无法调用包含类型为 '(@lvalue[Products,$T8 )'
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及重现它所需的最短代码在问题本身。
-
“我得到错误”没有描述问题。
-
当然,原谅我。首先是“找不到“!”的重载,它接受提供的参数。删除感叹号后,它是“无法调用包含类型为'(@lvalue[Products,$T8)'的参数列表”
-
不要说话和展示小sn-ps,请将您的代码简化为其他人可以从堆栈溢出中删除的可重现和完整示例并粘贴并尝试自己编译以查看问题所在。如果您需要帮助,请帮助您了解问题所在。