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/ float?
Was genau macht das __block Schlüsselwort in Objective-C? Ich weiß, dass Sie damit Variablen innerhalb von Blöcken ändern können, aber ich würde gerne wissen ... Was genau sagt es dem Compiler? Tut es noch etwas? Wenn das alles ist, warum wird es dann überhaupt benötigt? Ist es irgendwo in den …
Ich erhalte eine Fehlermeldung Variable ist nicht zuweisbar (fehlender __block-Typbezeichner) auf der Linie aPerson = participant;. Wie kann ich sicherstellen, dass der Block auf die aPersonVariable zugreifen und die aPersonVariable zurückgegeben werden kann? Person *aPerson = nil; [participants enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { Person *participant = (Person*)obj; if …
Die Blocksyntax in Ziel C (und tatsächlich in C, nehme ich an) ist notorisch inkongruent. Das Übergeben von Blöcken als Argumente sieht anders aus als das Deklarieren von Blöcken als ivars, was anders aussieht als das Blockieren von typedefBlöcken. Gibt es eine umfassende Liste der Blockdeklarationssyntax, die ich zur schnellen …
Ich habe eine funktionierende App und arbeite daran, sie in Xcode 4.2 in ARC zu konvertieren. Eine der Warnungen vor der Prüfung besteht darin, selfstark in einem Block zu erfassen , was zu einem Aufbewahrungszyklus führt. Ich habe ein einfaches Codebeispiel erstellt, um das Problem zu veranschaulichen. Ich glaube, ich …
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 funktionieren: dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ { // block1 }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ …
Ich fürchte, diese Frage ist ziemlich einfach, aber ich denke, sie ist für viele Objective-C-Programmierer relevant, die in Blöcke geraten. Was ich gehört habe ist, dass, da Blöcke lokale Variablen erfassen, auf die in ihnen als constKopien verwiesen wird , die Verwendung selfinnerhalb eines Blocks zu einem Aufbewahrungszyklus führen kann, …
Neben den offensichtlichen Unterschieden: Verwenden enumerateObjectsUsingBlockSie diese Option, wenn Sie sowohl den Index als auch das Objekt benötigen Nicht verwenden, enumerateObjectsUsingBlockwenn Sie lokale Variablen ändern müssen (ich habe mich geirrt, siehe bbums Antwort) Wird enumerateObjectsUsingBlockallgemein als besser oder schlechter angesehen, wann for (id obj in myArray)auch funktionieren würde? Was sind …
Ist es möglich, einen Methodenblockparameter in Objective-C anzugeben, ohne ein typedef zu verwenden? Es muss wie Funktionszeiger sein, aber ich kann die Gewinnsyntax nicht treffen, ohne ein Zwischen-Typedef zu verwenden: typedef BOOL (^PredicateBlock_t)(int); - (void) myMethodTakingPredicate:(PredicateBlock_t)predicate nur die oben genannten Kompilierungen, alle diese schlagen fehl: - (void) myMethodTakingPredicate:( BOOL(^block)(int) ) …
Wie kann ich ein Blockan ein Function/ übergeben Method? Ich versuchte es - (void)someFunc:(__Block)someBlockohne Erfolg. dh. Was ist der Typ für ein Block?
In Objective-C können Sie die Ein- und Ausgabe eines Blocks definieren, einen der Blöcke speichern, die an eine Methode übergeben wurden, und diesen Block später verwenden: // in .h typedef void (^APLCalibrationProgressHandler)(float percentComplete); typedef void (^APLCalibrationCompletionHandler)(NSInteger measuredPower, NSError *error); // in .m @property (strong) APLCalibrationProgressHandler progressHandler; @property (strong) APLCalibrationCompletionHandler completionHandler; …
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 dispatch_get_current_queue(), aber es scheint, dass es in iOS 6 oder …
Ich lese die Dokumentation von Xcode und hier ist etwas, das mich verwirrt: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; Folgendes wird aus der Dokumentation kopiert: Ein Block bildet einen starken Verweis auf Variablen, die er erfasst. Wenn Sie selfinnerhalb eines Blocks verwenden, bildet der Block …
Ich möchte den Objective-C-Block zur späteren Verwendung in einer Eigenschaft speichern. Ich war mir nicht sicher, wie ich es machen sollte, also habe ich ein bisschen gegoogelt und es gibt nur sehr wenige Informationen zu diesem Thema. Aber ich habe es schließlich geschafft, die Lösung zu finden, und ich dachte, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.