В моем приложении я использовал tableview. Я добавил один объект в массив, когда выбираю ячейку и снимаю выделение и удаляю объект при повторном выборе ячейки. Я использовал этот код, но дал мне ошибку. Пожалуйста, помогите мнеУдаление объекта из массива в swift 3
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
let cell = tableView.cellForRow(at: indexPath as IndexPath) as? ConctactsCell
cell?.imgCheckMark.image = UIImage(named:"check_mark")
arrContacts.append(contacts[indexPath.row])
NSLog("selected code = %@",arrContacts);
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath as IndexPath) as? ConctactsCell
cell?.imgCheckMark.image = UIImage(named:"")
arrContacts.removeObject(contacts[indexPath.row])
}
extension Array {
func indexOfObject(object : AnyObject) -> NSInteger {
return (self as NSArray).indexOfObject(object)
}
mutating func removeObject(object : AnyObject) {
for var index = self.indexOfObject(object); index != NSNotFound; index = self.indexOfObject(object) {
self.removeAtIndex(index)
}
}
}
Это дает мне 3 ошибки, как, что
Declaration is only valid at file scope
C-style for statement has been removed in Swift 3
Value of type '[Any]' has no member 'removeObject'
Обеспечить немного больше кода, показывающий, как вы объявили ваш массив контактов и где вы объявили его –
поместить код декларации о контактах массива –
Вы можете использовать '' Set, а не массив. Можете ли вы предоставить дополнительную информацию о своем контактном объекте? Если вы сделали это сами, вам нужно будет соответствовать «Hashable» и «Equatable», чтобы поместить его в набор –
Paulw11