Gibt es eine Möglichkeit, einen Block mit einem primitiven Parameter nach einer Verzögerung aufzurufen, z. B. performSelector:withObject:afterDelay:mit einem Argument wie int/ double/
Gibt es eine Möglichkeit, einen Block mit einem primitiven Parameter nach einer Verzögerung aufzurufen, z. B. performSelector:withObject:afterDelay:mit einem Argument wie int/ double/
Ich versuche, ein geeignetes Singleton-Modell für die Verwendung in Swift zu erarbeiten. Bisher konnte ich ein nicht threadsicheres Modell wie folgt zum Laufen bringen: class var sharedInstance: TPScopeManager { get { struct Static { static var instance: TPScopeManager? = nil } if !Static.instance...
Ich habe das iBook von Apple durchgesehen und konnte keine Definition dafür finden: Kann jemand die Struktur von erklären dispatch_after? dispatch_after(<#when: dispatch_time_t#>, <#queue: dispatch_queue_t?#>, <#block:
Ich lerne etwas über gleichzeitiges Programmieren für iOS. Bisher habe ich über NSOperation/NSOperationQueue und gelesen GCD. Was sind die Gründe für die Verwendung von NSOperationQueueover GCDund umgekehrt? Klingt nach beidem GCDund NSOperationQueueabstrahiert die explizite Erstellung...
In Swift 2 konnte ich dispatch_aftereine Aktion mit Grand Central Dispatch verzögern: var dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC))) dispatch_after(dispatchTime, dispatch_get_main_queue(), { // your function here }) Dies scheint jedoch...
In Swift 2 konnte ich eine Warteschlange mit folgendem Code erstellen: let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT) Dies wird jedoch in Swift 3 nicht kompiliert. Was ist die bevorzugte Methode, um dies in Swift 3 zu
Wenn Sie auf iOS 4.0 oder höher abzielen können Ist es mit GCD der beste Weg, Singleton in Objective-C (thread-sicher) zu erstellen? + (instancetype)sharedInstance { static dispatch_once_t once; static id sharedInstance; dispatch_once(&once, ^{ sharedInstance = [[self alloc] init]; }); return...
Ich habe einen Rückruf, der von jedem Thread kommen könnte. Wenn ich diesen Rückruf erhalte, möchte ich eine bestimmte Aufgabe im Hauptthread ausführen. Muss ich überprüfen, ob ich bereits im Haupt-Thread bin - oder gibt es eine Strafe, wenn ich diese Überprüfung nicht durchführe, bevor ich den...
Ich habe viel Code in Swift 2.x (oder sogar 1.x) Projekten, der so aussieht: // Move to a background thread to do some long running work dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { let image = self.loadOrGenerateAnImage() // Bounce back to the main thread to...
Ich weiß, dass Python das Überladen von Methoden nicht unterstützt, aber ich bin auf ein Problem gestoßen, das ich scheinbar nicht auf nette pythonische Weise lösen kann. Ich mache ein Spiel, in dem ein Charakter eine Vielzahl von Kugeln abschießen muss, aber wie schreibe ich verschiedene...
Bei Verwendung von GCD möchten wir warten, bis zwei asynchrone Blöcke ausgeführt und ausgeführt wurden, bevor wir mit den nächsten Ausführungsschritten fortfahren. Was ist der beste Weg das zu tun? Wir haben Folgendes versucht, aber es scheint nicht zu
In meiner App habe ich eine Funktion, die eine NSRURLSession erstellt und eine NSURLRequest mit sendet sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error) Im Abschlussblock für diese Aufgabe muss eine Berechnung durchgeführt werden, die dem aufrufenden Ansichtscontroller ein...
Ich teste Code, der asynchrone Verarbeitung mit Grand Central Dispatch ausführt. Der Testcode sieht folgendermaßen aus: [object runSomeLongOperationAndDo:^{ STAssert… }]; Die Tests müssen warten, bis der Vorgang abgeschlossen ist. Meine aktuelle Lösung sieht folgendermaßen aus: __block BOOL...
Ich möchte, dass eine for-in-Schleife eine Reihe von Netzwerkanforderungen an firebase sendet und die Daten dann an einen neuen View-Controller weiterleitet, sobald die Ausführung der Methode abgeschlossen ist. Hier ist mein Code: var datesArray = [String: AnyObject]() for key in locationsArray {...
Ich habe mit Erfolg Grand Central Dispatch in meinen Apps verwendet, aber ich habe mich gefragt, was der wahre Vorteil der Verwendung von so etwas ist: dispatch_async(dispatch_get_main_queue(), ^{ ... do stuff oder auch dispatch_sync(dispatch_get_main_queue(), ^{ ... do stuff Ich meine, in...
Ich habe eine serielle Warteschlange wie folgt erstellt: dispatch_queue_t _serialQueue = dispatch_queue_create("com.example.name", DISPATCH_QUEUE_SERIAL); Was ist der Unterschied zwischen so dispatch_asyncgenannt dispatch_async(_serialQueue, ^{ /* TASK 1 */ }); dispatch_async(_serialQueue, ^{...
Ich habe Probleme, die gleichzeitigen und seriellen Warteschlangen in GCD vollständig zu verstehen. Ich habe einige Probleme und hoffe, dass mir jemand klar und genau antworten kann. Ich lese, dass serielle Warteschlangen erstellt und verwendet werden, um Aufgaben nacheinander auszuführen. Was...
Ich bin noch ein bisschen neu in Objective-C und frage mich, was der Unterschied zwischen den folgenden beiden Aussagen ist. [object performSelector:@selector(doSomething)]; [object
Ich habe eine Methode, die einen Block und einen Abschlussblock akzeptiert. Der erste Block sollte im Hintergrund ausgeführt werden, während der Abschlussblock in der Warteschlange ausgeführt werden sollte, in der die Methode aufgerufen wurde. Für letztere habe ich immer verwendet...
Wie kann ich meinen Code warten lassen, bis die Aufgabe in DispatchQueue abgeschlossen ist? Benötigt es einen CompletionHandler oder so? func myFunction() { var a: Int? DispatchQueue.main.async { var b: Int = 3 a = b } // wait until the task finishes, then print print(a) // - this will contain nil,...