Object_c——blocks笔记整理


blocks的概念:

Block是OC中的一种数据类型,和c语音函数指针类似,运行需要编译器和运行时的支持(ios4.0开始支持 Blocks )两个对象之间通信,用到Blocks,相当于回调函数。


blocks和C语言函数指针的区别:

int (*CFunc) (int a);

返回类型 (标志符号 名称) (参数类型 参数名);

int(^Blocks) (int a);


blocks的声明(定义):

<pre name="code" class="objc">void (^myBlocks) () = NULL;<pre name="code" class="objc">void (^myBlocks2) (NSString *name,int score) = NULL;
 
 
(返回类型)(^块名称)(参数类型) 


blocks的使用:

1.赋值

  myBlocks = ^(){
    
        NSLog(@"hello!");
    };
    
    /*
     //后面没有参数的时候括号可以省略
     myBlocks = ^{
     
     NSLog(@"hello!");
     };
     */
<span style="white-space:pre">	</span>/*
     //行参名可以省略
     void (^myBlocks2) (NSString *,int) = NULL;
     */
    myBlocks2 = ^(NSString *name,int score){
    
        NSLog(@"%@,you got %i point",name,score);
    };

1.调用

myBlocks();
myBlocks()2;



 

如果没有参数,等号后面参数列表的()可以省略,例如

void (^myBlocks) = NULL;
myBlocks = ^{
    NSLog(@"It's Ok!");
}


blocks作为函数形参:

void printWithBlocks(void (^blocks) ())
{
    blocks();
}<pre name="code" class="objc">printWithBlocks(
		myBlocks          
);

 

 
_block关键字: 

作用:可以让blocks访问被_block修饰的外部变量,相当于被_block修饰的变量变为全局变量

示例代码:

void test()
{
    int a = 1;
    __block int b = 2;
    
    void (^block)();
    
    block = ^{
        // block内部可以访问外面的变量
        //NSLog(@"a = %d", a);
        
        // 默认情况下,block内部不能修改外面的局部变量
        // a = 20;
        
        // 给局部变量加上__block关键字,这个局部变量就可以在block内部修改
        b = 25;
    };
    
    
    block();
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NYC_Census_Blocks是一个数据集,包含了纽约市的人口普查区域信息。这个数据集是根据美国人口普查提供的数据整理而成的,提供了纽约市的各个区块的人口、种族、年龄、性别等相关统计信息。 要下载NYC_Census_Blocks,可以按照以下步骤进行: 1. 打开一个网络浏览器,比如Google Chrome或者Mozilla Firefox。 2. 在浏览器的搜索栏中输入“NYC Census Blocks数据集下载”,然后按下"Enter"键。 3. 在搜索结果中找到一个可靠的来源,比如纽约市政府官方网站或者数据开放平台。 4. 进入该网站,查找“NYC Census Blocks数据集”相关的页面或者链接。 5. 点击相关链接进入下载页面。 6. 在下载页面中,可能会要求提供一些个人信息或者同意相关协议。 7. 阅读并同意相关协议,然后点击“下载”按钮。 8. 根据提示选择下载的文件格式,比如CSV或者XLS。 9. 等待文件下载完成,这可能需要一些时间,取决于网络连接和文件大小。 10. 下载完成后,文件将保存在你的计算机或者指定的下载文件夹中。 11. 打开下载的文件,你将可以从中获取纽约市的人口普查区域信息。 请注意,这只是一个大致的指南,实际的下载步骤可能会因为不同的来源和平台而有所不同。如果你遇到任何问题或者有任何疑问,最好查找相关官方网站或者资源,以获得更准确和详细的下载指南。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值