Ich habe viele Foren und Tutorials in der Hoffnung, meine cloudkit app zu beschleunigen gesucht - (zumindest) scheint es, dass die Antwort auf die Festlegung der Quality of Service-Funktion zu "UserInteractive". Im Moment dauert es etwa 2/3 Sekunden, um einen Tabellen-Controller mit 3 Datensätzen zu aktualisieren, von denen jeder nur eine String-Variable hat, die durch ein Label angezeigt wird. Nach meinem Wissen wird das UI durch die Einstellung der Benutzerschnittstelle für die Benutzerschnittstelle schneller aktualisiert. Ich bin mir jedoch nicht sicher, wie ich den Qos-Code vollständig implementieren kann. Wie es aussieht, hier ist mein Code, der 2/3 Sekunden dauert, um zu laden.Wie füge ich NS Operation hinzu QOS = .UserInteractive, um Funktion abzufragen
func fetch()
{
let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Dining", predicate: predicate)
publicDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in
if (error != nil)
{
print("Error" + (error?.localizedDescription)!)
}
else
{
for result in results!
{
self.categories.append(result)
}
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.tableView.reloadData()
})
}
}
}
fetch()
}
Daher, um eine schnellere UI-Antwort zu erreichen, würde ich in der Lage sein, etwas wie das zu implementieren?
func fetch()
{
let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Dining", predicate: predicate)
publicDatabase.performQuery(query, inZoneWithID: nil) { (results, error) -> Void in
if (error != nil)
{
print("Error" + (error?.localizedDescription)!)
}
else
{
for result in results!
{
self.categories.append(result)
}
let qualityOfServiceClass = QOS_CLASS_UserInteractive
let Queue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(Queue, {
print("This is run on the background queue")
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.tableView.reloadData()
})
})
}
}
}
fetch()
}