ios - CollectionView 和 CompletionHandler

标签 ios swift uicollectionview completionhandler

我试图在加载数据后加载我的 CollectionView,但我不知道应该如何使用 CompletionHandler 来执行此操作。 感谢帮助 我的代码如下: 用于获取数据:

func GETData(){

    urlString = "https://api.backendless.com/v1/data/Pub?pageSize=10&offset="+String(offset)
    let session = NSURLSession.sharedSession()
    let url = NSURL(string: urlString)!
    let request = NSMutableURLRequest(URL: url)

    request.setValue(applicationId, forHTTPHeaderField: "application-id")
    request.setValue(secretKey, forHTTPHeaderField: "secret-key")

    let task = session.dataTaskWithRequest(request, completionHandler: { (data: NSData?,response: NSURLResponse?, error: NSError?) in

        if let responseData = data
        {
            parseDATA(responseData)
        }

        })
    task.resume()

    offset+=(pubs.count-offset)
    urlString = "https://api.backendless.com/v1/data/Pub"
}

对于 colelectionView 加载:

override func viewDidLoad() {
        pubs.removeAll()
        GETData()
        super.viewDidLoad()
        typealias  UIActivityViewControllerCompletionHandler = () -> Void

        print("AKTUAL: "+String(pubs.count))
        collectionView.delegate = self
        collectionView.dataSource = self

        // Do any additional setup after loading the view.
    }

最佳答案

在服务调用的成功 block 末尾重新加载 Collection View ,如下所示

[collectionView reloadData];

您还可以在 URLSession 委托(delegate)中提供 reloadData 方法。

关于ios - CollectionView 和 CompletionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36646836/

相关文章:

ios - 验证 Realm 是否在 iOS 上加密的正确方法?

swift - 在协议(protocol)符合类型之间映射 Swift

ios - 带有准确答案字段的琐事(快速)

swift - 如何以编程方式将 UICollectionView 插入 UITableViewCell ? [ swift ]

ios - UICollectionView 在屏幕加载时自动滚动到底部

ios - 在 CollectionView Swift 上第二次调用 (insertItems) 时应用程序崩溃

ios - 如何声明返回基类的方法

ios - NotificationCenter 观察者未在 swift 4 中调用

ios - 有没有一种方法可以在用户时间轴上自动显示 OpenGraph 操作,而无需他们从事件日志中启用它?

swift - performBackgroundTask Fault 在Core Data中获取数据时出错