【发布时间】:2015-12-03 22:12:01
【问题描述】:
我有一个在我的 collectionView 的 viewDidLoad 中调用的函数,它将内容从我的服务器加载到视图中:
// Load Books Class
func loadBooks() {
var query = PFQuery(className: "Books")
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
let bookObjects = objects as! [PFObject]
for (index, object) in enumerate(bookObjects) {
self.books.append(Book(pfBook: object))
}
}else if let secondMessage = error?.userInfo?["error"] as? String
where secondMessage == "The Internet connection appears to be offline." {
self.failedMessage(secondMessage)
}
dispatch_async(dispatch_get_main_queue()){
self.collectionView!.reloadData()
}
}
}
这是我在刷新 collectionView 时调用的函数,我基本上是在尝试将项目重新加载回视图:
func startRefresh(){
dispatch_async(dispatch_get_main_queue()) {
self.loadBooks()
println("loading complete!")
self.refreshControl.endRefreshing()
}
}
但是当我刷新而不是再次加载相同的内容时,它会加载两倍的内容量..有点像在加载方法之上调用加载方法,而不是重新执行它..看看我的逻辑,我应该怎么做才能解决这个问题?
【问题讨论】:
-
好吧,如果你将所有获取的对象追加到现有数组中,你会期待什么?
-
啊是的..你是对的..但是我应该如何调整这个@MartinR
标签: ios xcode swift uicollectionview reload