如何在Swift中加快性能查询?

如何在Swift中加快性能查询?,swift,cloudkit,Swift,Cloudkit,因此,我正在创建这个应用程序,它使用CloudKit从云中保存和获取图像和文本。问题是,我只能在整个提取完成后才能访问结果。我希望能够在获取每个记录时单独获取它。这是代码 func fetchPost() { spinner.startAnimating() if imageView.image != nil { spinner.alpha = 0 } var imageData = [UIImage]() var text = [

因此,我正在创建这个应用程序,它使用CloudKit从云中保存和获取图像和文本。问题是,我只能在整个提取完成后才能访问结果。我希望能够在获取每个记录时单独获取它。这是代码

    func fetchPost() {
    spinner.startAnimating()
    if imageView.image != nil {
        spinner.alpha = 0
    }
    var imageData = [UIImage]()
    var text = [String]()
    let predicate = NSPredicate(value: true)
    let sort = NSSortDescriptor(key: "creationDate", ascending: false)

    let query = CKQuery(recordType: "Post",
        predicate:  predicate)
    query.sortDescriptors = [sort]
    publicDB.performQuery(query, inZoneWithID: nil) {
        results, error in
        if error != nil {
            dispatch_async(dispatch_get_main_queue()) {
                println("Query failed")
                return
            }
        } else {
            println("test")
            var number = 0
            for record in results {
                if let pictureRecord = record as? CKRecord {
                    let post = Post(record: pictureRecord, database: self.publicDB)
                    let postImageData = post.imageData
                    let postText = post.text
                    self.images.append(UIImage(data: postImageData)!)
                    self.texts.append(postText)
                    println("\"\(postText)\" is the text. Fetch successful.")
                    if number == 0 {
                        self.imageView.image = self.images[0]
                        self.nameLabel.text = self.texts[0]
                    }
                    ++number
                } else {
                    println("Records failed")
                }
            }
        }

        self.spinner.stopAnimating()
        self.spinner.alpha = 1
    }
}

谢谢

如果使用
CKQueryOperation
可以设置一个回调(
recordFetchedBlock
),当从服务器获取每条记录时,将调用该回调