快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Objective-C(13)代码块---block

  • block类型

    为兴海等地区用户提供了全套网页设计制作服务,及兴海网站建设行业解决方案。主营业务为做网站、网站建设、兴海网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

block是一种数据类型,在iOS开发中广泛使用且被苹果公司极力推荐使用,其功能很像C语言中的函数指针。

     ^ 是block的特有标志。

     block的实现代码包含在{ }中。

     大多数情况下,以内联的形式被定义及使用。

void (^demoBlock)() = ^ {
    NSLog(@"demo Block");
}
int (^sumBlock)(int, int) = ^(int x, int y) {
    return x + y;
}

 

block的使用和函数指针的使用类似

int (^sumblock)(int, int) = ^(int a, int b) {
    return a>b?a:b;
}
int c = sumblock(10, 20);
NSLog(@"c=%d", c);

block内部可以访问外部的变量

     外部的局部变量,block内部不能修改,全局变量可以。

     如果局部变量使用__block声明,则可以在内部修改。

int a = 10;
__block int b = 20;
void (^myblock)();
myblock = ^ {
    NSLog(@"a=%d", a);
    b = 20;
}
myblock();

     

实际上,定义block时会对局部变量进行拷贝(副本)

block的重要意义:在处理异步任务时非常方便,这也是block应用的难点


新闻名称:Objective-C(13)代码块---block
地址分享:http://6mz.cn/article/pchhed.html

其他资讯