我对开发Swift和iOS相对比较陌生,但并不是新的代码。我有点讨厌表格视图。删除列表后,UITableView将不会刷新。 self.tableView.reloadData()不起作用
我已经试过无数次使用self.tableView.reloadData()
但无济于事。我也试过
async call dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
但是这也不想工作。我会发布功能,以便有人可以启发我在哪里搞错了。我真的很感激帮助。
@IBAction func clearList(sender: AnyObject) {
let alert = UIAlertController(title: "Clear List?",
message: "Are you sure you want to clear the list?",
preferredStyle: .Alert)
let yesClearAction = UIAlertAction(title: "Yes", style: .Default, handler: { (action:UIAlertAction) -> Void in
self.clearListNow("GroceryList")
})
let noClearAction = UIAlertAction(title: "No", style: .Default, handler: { (action:UIAlertAction) -> Void in
//do nothing aka don't clear list
})
alert.addAction(yesClearAction)
alert.addAction(noClearAction)
presentViewController(alert, animated: true, completion: nil)
self.tableView.reloadData()
}
以防万一有人想看看有什么clearListNow
呢......
func clearListNow(entity: String) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "GroceryList")
fetchRequest.returnsObjectsAsFaults = false
do
{
let results = try managedContext.executeFetchRequest(fetchRequest)
for managedObject in results
{
let managedObjectData:NSManagedObject = managedObject as! NSManagedObject
managedContext.deleteObject(managedObjectData)
}
} catch let error as NSError {
print("Detele all data in \(entity) error : \(error) \(error.userInfo)")
}
}
我也试图在clearListNow
功能使用self.tableView.reloadData()
。我试图在同一时间和两种情况下单独陈述陈述,并且两种情况都没有奏效。
做你尝试把你的代码'dispatch_async内(dispatch_get_main_queue()){...})'块,以避免异步加载? – iamalizade
你是否已经设置了tableview的委托和数据源?并同时实施?请显示这个实现。 – Darko