1、什么是Block?

  ① 块语法,本质上是匿名函数(没有名称的函数);

  ② Block是OC中的一种数据类型,在iOS开发中被广泛使用;

  ③ ^是Block的特有标记;

  ④ Block的实现代码包含在{}之间;

  ⑤ 大多情况下,以内联inline函数的方式被定义和使用;

  ⑥ Block与C语言的函数指针有些相似,但使用起来更加灵活;

  示例:main.m文件中:

  

  控制台输出:

  

2、Block变量存储的是什么?

  简单地讲Block变量储存的是:函数的实现;

3.如何定义一个Block变量?如何给Block变量赋值.如现在有一个匿名函数int (NSString * a,int b)它的功能是将数字字符串a,转换为整型值,然后与b相加,返回和值。

  示例:main.m文件中:

  

  控制台输出:

  

4.对于上题的匿名函数,如何通过block变量实现执行这个匿名函数。

  示例:main.m文件中:

  

5.在block中能修改局部变量的值吗?能修改全局变量的值吗?

  ①不能,需要在定义局部变量的时候加上_ _block;

  ②在block中可以直接修改全局变量。

6.创建3个学生对象,存放到数组中,如何通过block实现对该数组按照年龄降序排列。

  示例:main.m文件中:

  

  控制台输出:

  

7、void (^myBlock)() = ^void(){ NSLog(@“Hello Lanou!”); }  

  其中:①block变量的类型是什么?   ②block的变量名是什么?  ③block变量存储的值的类型是什么?

答: ① void (^)()  ② myBlock  ③ ^void(){  NSLog(@“Hello Lanou!”);  };

Email:dingding3w@126.com

Objective-C 快速入门--基础(四)的更多相关文章

  1. Objective C 快速入门学习四

    类 1.合成存取器方法 @property   成员变量 @synthesize 成员变量 可以让编译器自动合成 设置和获取函数的方法,不用手动生成set成员变量,Get成员变量 @interface ...

  2. Scala快速入门 - 基础语法篇

    本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...

  3. Scala快速入门(四)——继承、接口

    Scala快速入门(四)--继承.接口 一.继承 1.继承的概念:省略 2.模板: class Person(n:String,a:Int) { var name:String=n var age:I ...

  4. CSS快速入门(四)

    目录 CSS快速入门(四) 浮动 float属性 clear属性 浮动解决的问题及其影响 解决父标签塌陷的方法 浮动案例 定位 什么是脱离文档流 定位的两种方法 position定位 static定位 ...

  5. spring快速入门(四)

    一.在spring快速入门(三)的基础上,我们来了解BeanFactory及配置. Client package com.murong.client; import org.springframewo ...

  6. ELK快速入门(四)filebeat替代logstash收集日志

    ELK快速入门四-filebeat替代logstash收集日志 filebeat简介 Filebeat是轻量级单用途的日志收集工具,用于在没有安装java的服务器上专门收集日志,可以将日志转发到log ...

  7. html5快速入门(四)—— JavaScript

    前言: 1.HTML5的发展非常迅速,可以说已经是前端开发人员的标配,在电商类型的APP中更是运用广泛,这个系列的文章是本人自己整理,尽量将开发中不常用到的剔除,将经常使用的拿出来,使需要的朋友能够真 ...

  8. JavaScript快速入门(四)——JavaScript函数

    函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)——JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...

  9. springboot快速入门(四)——数据库操作

    一.Spring-Data-Jpa的引入 先给出官方文档:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/ IBM ...

随机推荐

  1. 走进AngularJs(六) 服务

    今天学习了一下ng的service机制,作为ng的基本知识之一,有必要做一个了解,在此做个笔记记录一下. 一.认识服务(service) 服务这个概念其实并不陌生,在其他语言中如java便有这样的概念 ...

  2. 借助node实战JSONP跨域

    一.前言: 浏览器安全是基于同源策略的.所谓同源策略就是三相同: 1.协议相同: 2.域名相同: 3.端口相同. 但,凡事都是有利弊,同源策略也导致了我们想用AJAX跨域请求,但NO!!为了规避这种限 ...

  3. Ubuntu杂记——Apache+PHP+MySQL的安装

    昨天晚上,参考博客园的另一篇文章,在自己的Ubuntu上搭建了一个Apache+PHP+MySQL的服务器,在此谨记,以备不时之需. 一.安装Apache sudo apt-get install a ...

  4. 纯CSS打造忙碌光标

    我们经常会用到忙碌等待的情况,比如ajax等待回调,或者加载页面的时候,我们通常的做法就是放一张loading.gif图片,在那里转呀转. 以前是在pc上用,也没有觉得不妥,如今要在移动端用,问题就来 ...

  5. iOS_UIImage_毛玻璃效果

    效果图: 核心方法: // 出入UIImage 和 blur模糊成度 (0-1) - (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CG ...

  6. Visual Studio 2013 Update 3 RTM 正式发布

    VS2013.3 RTM已发布! 完整安装包:http://download.microsoft.com/download/6/F/0/6F0777D3-3541-465F-8639-A8F9D36B ...

  7. SignalR入门之Hub

    在持久性连接的基础上,SignalR提供了一个更高层次的抽象层:Hub,基于javascript的灵活性和C#的动态特性,Hub是一个至关重要的开发模式,它消弭了客户端和服务端这两个独立的物理环境之间 ...

  8. iOS阶段学习第33天笔记(自定义标签栏(UITabBar)介绍)

    iOS学习(UI)知识点整理 一.自定义标签栏 1.方法一 单个创建标签栏 #import "AppDelegate.h" #import "SecondViewCont ...

  9. 4、python列表

    1.末尾追加:append() s = ["a", "b", "c"] print(s) #['a', 'b', 'c'] s.append ...

  10. 使用AOP+Annotation实现操作日志记录

    先创建注解 OperInfo @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @ ...