Ich bin etwas neu zu Blöcken und brauche etwas Hilfe. Ich möchte einen Block in einem NSDictionary
speichern und den Block ausführen, wenn auf dessen key
zugegriffen wird. Hier ist, was ich bisher als ein Beispiel habe.Wie kann ich Blöcke ausführen, die in einem NSDictionary gespeichert sind?
NSDictionary *blocks = [NSDictionary dictionaryWithObjectsAndKeys:
^{NSLog(@"Log Block 1");}, @"Block1",
^{NSLog(@"Log Block 2");}, @"Block2",
nil];
Ich nummeriere dann durch das Wörterbuch mit keyEnumerator
. Ich weiß, dass der Block ordnungsgemäß gespeichert wird, da ich während der Aufzählung NSLog(@"%@", [blocks objectForKey:key]);
aufrufen und <__NSGlobalBlock__: 0x100003750>
abrufen. Ich weiß, dass ich darauf zugreifen kann, aber wie kann ich es an dieser Stelle ausführen?
Danke, das für mich gearbeitet. Mir ist jedoch aufgefallen, dass bei nachfolgenden Aufrufen zu jedem Block die gleichen Informationen wie bei der ersten Ausführung zurückgegeben werden, anstatt etwas zu enthalten, das sich seither geändert hat. Gibt es eine Möglichkeit, es bei jedem Aufruf auszuführen, anstatt die ursprüngliche Information zurückzugeben? – sud0
Sie wird jedes Mal ausgeführt, erfasst jedoch externe Variablen beim Kopieren und nicht bei der Ausführung. –