object-c block

来源:互联网 发布:c语言数据库编程 编辑:程序博客网 时间:2024/05/16 15:39

Block对象是一个c-level的语法和运行时的功能。和C的函数很相似,但是执行代码的时候,but in addition to executable code they may also contain variable bindings to automatic (stack) or managed (heap) memory。A block can therefore maintain a set of state (data) that it can use to impact behavior when executed.

block最有用的是用来当作callback,因为block包含了回调中要执行的代码执行时所需的data


声明一个block并使用他:


int multiplier = 7;int (^myBlock)(int) = ^(int num) {    return num * multiplier;}; printf("%d", myBlock(3));// prints "21"


直接使用block:

block直接是qsort_b()的参数

char *myCharacters[3] = { "TomJohn", "George", "Charles Condomine" }; qsort_b(myCharacters, 3, sizeof(char *), ^(const void *l, const void *r) {    char *left = *(char **)l;    char *right = *(char **)r;    return strncmp(left, right, 1);}); // myCharacters is now { "Charles Condomine", "George", "TomJohn" }<strong></strong>


0 0
原创粉丝点击