Ich frage mich, ob es möglich ist, einen Verweis auf eine anonyme Funktion (Block) als Instanzvariable in Objective-C zu speichern.Blockreferenzen als Instanzvariablen in Objective-C
Ich weiß, wie Delegierung, Ziel-Aktion usw. zu verwenden. Ich spreche nicht darüber.
Gibt es eine Möglichkeit, einen generischen Typ für einen Block zu haben? Ich hasse es, dass ich dort einen 'typedef' haben muss. –
@Jacob yeah, du kannst: 'void (^) (void)' (oder welche Block-Signatur du benötigst) überall dort, wo du 'MyCustomBlockType' siehst. Ich verspreche jedoch, dass die Verwendung von 'typedef' die Dinge auf lange Sicht viel einfacher machen wird. Es gibt jedoch keine Möglichkeit, "irgendeinen Block mit irgendeinem Rückgabewert und irgendwelchen Parametern zu sagen. Sie müssen bezüglich der Signatur explizit sein. –
@Jacob Sie sind immer noch durch das Typsystem von C eingeschränkt. Es gibt keinen" generischen "Block In C++ können Sie mit Templates und Blöcken einige ziemlich verwirrende Dinge tun. Realistischer ausgedrückt ist Typ id in Bezug auf Objective-C-Typen generisch, also nimmt und gibt (möglicherweise nil) id zurück. s gibt Ihnen eine Menge Flexibilität. –