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