Page 1 of 1

NSAttributedString aus HTML im Hauptthread verhält sich wie beim Multithreading

Posted: 15 Jan 2025, 17:55
by Guest
Ich konvertiere HTML in einen NSAttributedString im Hauptthread (wie Apple es Ihnen sagt). Es dauert einige Zeit und dann wird der Rest des Blocks weiter ausgeführt.
Nun, wenn ein anderer Block zur Ausführung im Hauptthread in die Warteschlange gestellt wird auch (z. B. nachdem ich eine Antwort von einer HTTP-Anfrage erhalten habe), würde ich erwarten, dass es nach ausgeführt wird, nachdem alles andere abgeschlossen ist, aber das passiert nicht: Sie laufen parallel, als wären sie in verschiedenen Threads. Ich habe überall Asserts eingefügt, um sicherzustellen, dass sie sich im Hauptthread befinden.

Ich habe ein Experiment „Single View App“-Projekt durchgeführt, um dies zu testen, mit einer Datei, die einen sehr langen HTML-Code enthält Zeichenfolge wie lorem ipsum dolor
sit amet und einen View-Controller mit dem folgenden Code:

Code: Select all

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

dispatchStuff()
for _ in 0..