My cellForRowAtIndexPath не вызывается после запуска операторов печати. Выяснилось, что мой tableView не перезагружается ... Пробовали несколько точек и до сих пор не перезагружаемся. Кто-нибудь знает, почему `Перезагрузка TableView После вызова Firebase Observer
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
DataService.ds.DATABASE_REF_USERS.child(CURRENTUSER!).child("cart").observe(.value, with: { (snapshot) in
print("check")
if let snapshot = snapshot.children.allObjects as? [FIRDataSnapshot] {
self.cartItems = []
for snap in snapshot {
let shoeId = snap.key
DataService.ds.DATABASE_REF_SHOES.child("upcomingShoes").child(shoeId).observeSingleEvent(of: .value, with: { (snapshot) in
if let shoeData = snapshot.value as? Dictionary<String, AnyObject> {
let shoe = Shoe(shoeId: shoeId, shoeData: shoeData)
print(shoe.shoeName)
self.cartItems.append(shoe)
}
})
}
}
self.tableView.reloadData()
})
print(self.cartItems.count)
}
// ДОБАВИТЬ В МОЙ БАЗА ДАННЫХ:
@IBAction func addToCartPressed(_ sender: Any) {
//Under the current users, child node called "cart", I want to add the current shoes id
let currentUserCartRef = DataService.ds.DATABASE_REF_USERS.child(CURRENTUSER!).child("cart")
let shoeDataToAdd = [shoe.shoeId: true]
currentUserCartRef.updateChildValues(shoeDataToAdd)
}
`
Таблица Методы Посмотреть Клеточные
//Table View Methods
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cartItems.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let shoe = cartItems[indexPath.row]
if let cell = tableView.dequeueReusableCell(withIdentifier: "cartCell", for: indexPath) as? CartCell {
if let shoeImage = MainVC.imageCache.object(forKey: shoe.shoeImageUrl as NSString) {
cell.configureCell(shoe: shoe, shoeImage: shoeImage)
}
else {
cell.configureCell(shoe:shoe)
}
return cell
}
else {
return PreviewCell()
}
}
У меня есть vailalbes в верхней части моего класса: var cartItems = [Shoe]() – menan
Этот оператор печати выполняется перед выполнением строки 'self.tableView.reloadData()'. Поэтому очевидно, что он выводит '0' в качестве вывода. Также вам нужно перезагрузить tableView в основном потоке. –
Эй, я просто пробовал разные области, чтобы увидеть, был ли код запущен, операторы печати arent работают там или где self.tableView.reloadData() либо – menan