我正在使用tableview显示来自json的一些数据。我正在使用一个对象数组来填充这些数据。现在我想在像雅虎板球移动应用程序一定时间(例如10秒)之后刷新这些数据。任何人都可以建议我怎么做?
答案 0 :(得分:2)
使用计时器是您在ViewDidload
self.myTimer = NSTimer(timeInterval: 10.0, target: self, selector: "refresh", userInfo: nil, repeats: true)
NSRunLoop.mainRunLoop().addTimer(self.myTimer, forMode: NSDefaultRunLoopMode)
func refresh() {
tableview.reloadData(); //refresh the table
}
答案 1 :(得分:0)
安排一个每10秒运行一次的计时器
timer = NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: #selectior(refresh), userInfo: nil, repeats: false)
}
func refresh() {
// fetch Data from Server
}
获取数据后,再次填充数组并使用tableView方法reloadData
重新加载tableView
tableview.reloadData()
要更新某些数据行,您可以使用下面的代码。这里我演示了一行更新,你可以通过在你想要的数组中传递indexPath
多个来进行多行更新。
//suppose you want to update row 0 for section 0, create indexPath as
let indexPath1 = NSIndexPath(forRow: 0, inSection: 0)
tableview.reloadRowsAtIndexPaths([indexPath1], withRowAnimation: .Automatic)
如果您想更新特定部分,请执行此操作
//suppose you want to update your section 0
let indexSet = NSIndexSet(index: 0)
profileTableView.reloadSections(indexSet, withRowAnimation: .Automatic)
答案 2 :(得分:0)
最简单的方法是使用NSTimer。
class ViewController: UIViewController {
var timer : NSTimer!
override func viewDidLoad() {
super.viewDidLoad()
timer = NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: #selectior(fetch), userInfo: nil, repeats: false)
}
func fetch() {
// do your stuff here
}
}