Swift pull重新加载表中的对象而不是更新
我从分析导入数据,并试图添加“拉刷新”function,所以如果有人添加一个对象,它将添加到tableview,但现在它复制了什么已经在tableview。 显然,如果没有添加任何东西,我什么都不应该改变。
许多帮助将是最重要的
这是我的代码如下
var refresher: UIRefreshControl! func Refresh() { let query = PFQuery(className: "Events") query.orderByAscending("Date") query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in if error == nil { // query successful - display number of rows found print("Successfully retrieved \(objects!.count) Events") if let objects = objects { for object in objects { self.postedEvents.append(object.objectForKey("Name") as! String) self.postedImages.append(object.objectForKey("Image") as! PFFile) self.postedObjects.append(object) self.tableView.reloadData() self.refresher.endRefreshing() } print(self.postedObjects.count) print(self.postedEvents) } } else { // Log details of the failure NSLog("Error: %@ %@", error!, error!.userInfo) } } } override func viewDidLoad() { refresher = UIRefreshControl() refresher.attributedTitle = NSAttributedString(string: "Pull to Refresh") refresher.addTarget(self, action: "Refresh", forControlEvents: UIControlEvents.ValueChanged) self.tableView.addSubview(refresher) Refresh() }
尝试在Refresh()
第一行:
self.postedEvents.removeAll() self.postedImages.removeAll() self.postedObjects.removeAll()
您可以检查最近的原始对象的query.whereKey("createdAt", greaterThanOrEqualTo: self.pastRecentTime)
时间,并在您的刷新function说query.whereKey("createdAt", greaterThanOrEqualTo: self.pastRecentTime)
,这只会拉最近的对象。