Я использую TableView, и в ячейке таблицы есть кнопка, и мне нужно, когда пользователь нажал на кнопку, мне нужно удалить этот элемент из таблицы.и я попытался удалить, используя filter
, но это не сработало.
в моей ячейке таблицы:
import UIKit
import GMStepper
import RealmSwift
class CartTableViewCell: UITableViewCell {
@IBOutlet weak var foodTitle: UILabel!
@IBOutlet weak var foodPrice: UILabel!
@IBOutlet weak var shortDiscription: UILabel!
@IBOutlet weak var myStepper: GMStepper!
@IBOutlet weak var deleteButton: UIButton!
var food : Foods?
weak var delegate: CartTableViewCellDelegate?
let realm = try! Realm()
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
@IBAction func myFuncStepper(_ sender: GMStepper) {
if sender.value == food?.count {
return
}
try! realm.write {
food?.count = sender.value
food?.name = foodTitle.text!
food?.price = Double(foodPrice.text!)!
}
}
//here , when the user has clicked at the button i need remove this
item from table
@IBAction func deletButtonFunc(_ sender: Any) {
if let userObject = realm.objects(Foods.self).filter("id == 0").first {
print("User is existed, it's being deleted.")
try! realm.write {
realm.delete(userObject)
}
print("Deleted.")
}
else{
print("User is not found.")
}
}
}
мой ViewController:
import UIKit
import RealmSwift
class CartViewController: UIViewController , UITableViewDataSource{
var foood : Foods?
var foodArrayCart = [Foods]()
weak var cells : FoodsSecoundTableViewCellDelegate?
var countMeal:Int?
let realm = try! Realm()
@IBOutlet weak var myTable: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
let result = realm.objects(Foods.self)
for obje in result {
foodArrayCart.append(obje)
}
myTable.rowHeight = 182
myTable.dataSource = self
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return foodArrayCart.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let arr = foodArrayCart[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "cart_cell") as! CartTableViewCell
if cell.foodPrice.text! == "nil" {
cell.foodPrice.text = String(arr.price)
}
cell.shortDiscription.text = arr.name
cell.foodTitle.text = arr.name
cell.foodPrice.text = String(arr.price)
cell.myStepper.value = arr.count
cell.food?.id = arr.id
cell.myStepper.tag = indexPath.row
return cell
}
}
класс:
import Foundation
import UIKit
import RealmSwift
import Realm
class Foods : Object {
@objc dynamic var id = 0
@objc dynamic var name = ""
@objc dynamic var price = 0.0
@objc dynamic var descriptionn = ""
@objc dynamic var time = ""
@objc dynamic var rating = 0.0
var image:UIImage?
@objc dynamic var count = 0.0
override static func primaryKey() -> String?{
return "id"
}
convenience init(id : Int , name : String,price : Double , count:Double ,description : String,time : String,rating : Double,image : UIImage?) {
self.init()
self.id = id
self.name = name
self.price = price
self.descriptionn = description
self.time = time
self.rating = rating
self.image = image
self.count = count
}
convenience init(id : Int , name : String,price : Double , count : Double) {
self.init()
self.id = id
self.name = name
self.price = price
self.count = count
}
}