können Sie versuchen, ein bisschen Einfädeln über diese Methode die Dinge zu beschleunigen, kann in einem normalen dispatch_async das Ganze hat gerade wenn nichts dafür
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) {
//put all lengthy calculations here
dispatch_async(dispatch_get_main_queue()) {
//do any UI updates here
}
}
warten muss beenden, wenn Sie tatsächlich wollen obwohl die Berechnung zu beschleunigen, werden Sie die for-Schleifen tun Schleifen in verschiedenen Threads
let group = dispatch_group_create();
let queue = dispatch_queue_create("processStuff", DISPATCH_QUEUE_CONCURRENT)
for x in 1...325{
dispatch_group_async(group,queue,{
for y in 1...325{
//do stuff
}
})
}
//dispatch_group_wait(group,DISPATCH_TIME_FOREVER); // use this if you want to wait here, blocking the main thread
dispatch_group_notify(group,dispatch_get_main_queue(),{ //use this if you want to be notified when all the groups have finished without blocking the main thread
})
Warnung brechen müssen: wenn Sie Berechnungen in jedem inneren for-Schleife hängen von anderen Iterationen der anderen für Schleifendurchläufe oder Variablen der Außenseite fo R-Schleife, Ihre Berechnungen könnten versauen, also seien Sie vorsichtig.
diese setzen Code in dispatch_asyn Block –
Was machst du mit dem Char? Wenn Sie eine teure Operation machen, die es 105625 Mal verwendet, wird das wahrscheinlich die Dinge verlangsamen – Fonix
Holen Sie sich einen Zeiger Verweis auf string.characters und iterieren über den Zeiger. Siehe Beispiel hier https://github.com/petershaw/charsinfile/blob/master/charsinfile/CharReader.swift –