У меня есть данные, поступающие из базы данных в моем UITableView
, когда я пытаюсь свернуть, чтобы обновить все данные в моем табло, повторить сам и когда я пытаюсь поместить новые данные в базу данных и сделать обновление ничего не происходит.Ошибка в UITableview при отключении для обновления, все данные повторяются. Может ли кто-нибудь помочь с использованием Swift3, Xcode8
Это мой код
class MyTable: UITableViewController {
var refresh = UIRefreshControl()
@IBAction func SharaOn(_ sender: UIButton) {
}
var mydata = [TestTable]()
let backendless = Backendless()
override func viewDidLoad() {
super.viewDidLoad()
refresh = UIRefreshControl()
refresh.addTarget(self, action: #selector (MyTable.pullDown), for: .valueChanged)
tableView.addSubview(refresh)
}
override func viewDidAppear(_ animated: Bool) {
loaddatawithquery()
}
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return mydata.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "mycell") as? MyTableCell{
let ImgURL = URL(string : self.mydata[(indexPath as NSIndexPath).row].ImgURL!)
let Desc = self.mydata[(indexPath as NSIndexPath).row].Desc!
cell.MyText.text = Desc
cell.mainImage.sd_setImage(with: ImgURL)
return cell
}else{
let cell = MyTableCell()
let ImgURL = URL(string : self.mydata [(indexPath as NSIndexPath).row].ImgURL)
let Desc = self.mydata[(indexPath as NSIndexPath).row].Desc
cell.mainImage.sd_setImage(with: ImgURL)
cell.MyText.text = Desc!
return cell
}
}
func updateLikes() {
let LikeBu = TestTable()
let updaterecord = Backendless.sharedInstance().data.of(TestTable.ofClass())
LikeBu.LikeNo = 1
updaterecord?.save(LikeBu, response: { (result) in
print("udateed successfully \(result)")
}, error: { (Fault) in
print("EROrrrrrrrrrr")
})
}
func loaddatawithquery(){
_ = "ImgURL"
_ = "Desc"
let dataQuery = BackendlessDataQuery()
dataQuery.queryOptions.pageSize=50
// dataQuery.whereClause = whereClause
backendless.data.of(TestTable.ofClass()).find(dataQuery,response: {(result: BackendlessCollection?) -> Void in
let data = result?.getCurrentPage()
for obj in data! as! [TestTable] {
self.mydata.append(obj)
//print("&&&&&&&hhhjjjhhvkhkh \(obj.Desc!) &&&&&&&&&&&&&&&&&&")
self.tableView.reloadData()
}
},
error: { (fault: Fault?) -> Void in
let alert = UIAlertController(title: "info", message:"يرجى الاتصال بالانترنيت", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default) { _ in
})
self.present(alert, animated: true){}
})
}
@IBAction func likebutton(_ sender: AnyObject) {
// updateLikes()
}
func pullDown() {
for data in mydata {
self.mydata.append(data)
}
self.refresh.endRefreshing()
}
}
Я пытаюсь сделать это, но когда я добавить новые данные в базе данных моей и понижающие никакой вещи не случится. –
Код, который вы используете сейчас, будет добавлять новые данные и старые данные, следовательно, есть два набора старых данных, поэтому вы получаете дубликаты данных в массиве. –
Вы, люди, хотите удалить func из раскрывающегося списка и вместо него использовать функцию loaddatawithquery? если это означает, что я пытался это сделать, но все-таки та же ошибка. –