是否可以在Objective-C中从字符串创建一个块?

eha*_*ro2 3 objective-c objective-c-blocks

我试图在运行时使用char*字符串在Objective-C中创建一个块.但我找不到办法.

我认为Objective-C的动态性质可以做类似的事情

char *blockString = "^(int a, int b) {return a + b;};";
printf("%s\n", blockString);
int (^addBlock)(int a, int b) = (^)*blockString;
int result = addBlock(3, 6);
Run Code Online (Sandbox Code Playgroud)

显然,第三行的语法对于编译器来说太过古怪,但我希望它能让你了解我想要实现的目标.

这可能吗?

Dun*_*n C 8

目标C是一种编译语言,未解释.

  • 虽然有几种方法可以在运行时使用`performSelector`和`NSSelectorFromString`以及各种Objective-C运行时函数和`NSInvocation`来动态执行代码. (2认同)