温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-03 06:00:35 来源:网络 阅读:422 作者:ymanmeng123 栏目:移动开发
  • 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应用的难点



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI