默染江山——oc之block

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

(一) 简介

  1. Block封装了一段代码,可以在任何时候执行

  2. Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。

  3. 苹果官方建议尽量多用block。在多线程、异步任务、集合遍历、集合排序、动画转场用的很多

(二) block的定义

1、Blocks的定义:

int (^MySum)(int, int) = ^(int a, int b) {
    return a+b;
};

定义了一个叫MySum的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现

2、如何利用block封装代码
1> 标准形式

 ^(int a, int b) {
    return a - b;
 };

2> 省略参数形式

 ^() {
    NSLog(@"----------");
 };

3> 省略参数,省略小括号形式

^ {
    NSLog(@"----------");
 };

3、block访问外面变量
Block可以访问局部变量,但是不能修改。

int sum = 10;
int (^MyBlock)(int) = ^(int num) {
    sum++;//编译报错
    return num * sum;
};

如果要修改就要加关键字:__block

__block int sum = 10;

4、利用typedef定义block类型
typedef int (^MyBlock)(int, int);
以后就可以利用MyBlock这种类型来定义block变量

 MyBlock block;
 MyBlock b1, b2;
 b1 = ^(int a, int b) {
    return a - b;
 };

 MyBlock b3 = ^(int a, int b) {
    return a - b;
 };

(三) Blocks和函数指针对比

1、 定义
1> 定义函数指针:

int (*myFn)();

2> 定义Blocks:

int (^MyBlocks)(int,int);

2、调用
1> 调用函数指针

(*myFn)(10, 20);

2> 调用Blocks

MyBlocks(10, 20);

(四) Blocks的赋值

1、在声明的同时定义变量,然后赋值

int (^MySum)(int,int) = ^(int a,int b) {
    return a + b;
};

2、也可先用typedef先声明类型,再定义变量进行赋值

typedef int (^MySum)(int,int);
MySum sum = ^(int a,int b) {
    return a + b;
}; 

(五) 全局Blocks

在文件级别,可以把block作为全局标示符:

1 #import <stdio.h>
2 
3 int GlobalInt  = 0;
4 int (^getGaobalInt)(void) = ^{return GlobalInt;};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。
襄阳江山重工是一家专注于FPGA行业的企业,其官网上的FPGA工程师笔试主要是为了筛选出具有相关技能和知识的人才。FPGA工程师是负责设计和开发可编程逻辑电路的专业人员。 在这次笔试中,可能会包括以下几个方面的内容: 1. FPGA基础知识:笔试可能包括FPGA的定义、工作原理、架构和常用的FPGA芯片等基础知识的考察。学员需要了解FPGA的特性和发展趋势,以及FPGA在不同领域的应用。 2. Verilog/VHDL编程技能:Verilog和VHDL是FPGA设计中常用的硬件描述语言。笔试可能会涉及到对Verilog/VHDL语法的理解和编程实践题目。学员需要熟悉Verilog/VHDL的语法规范,并能够根据题目要求编写相应的代码。 3. FPGA设计与调试能力:FPGA工程师需要具备良好的逻辑思维和问题解决能力。笔试中可能会出现一些FPGA设计和调试的题目,例如设计一个特定的逻辑电路或排查FPGA工程中的故障等。学员需要能够独立思考并解决实际问题。 4. 数字电路与信号处理基础:FPGA工程师的工作与数字电路和信号处理相关,因此对数字电路和信号处理的基础知识的考察也是重要的。学员需要了解数字电路的基本概念、逻辑门电路、时序电路以及常见的信号处理算法等。 总体来说,襄阳江山重工官网FPGA工程师笔试旨在评估申请人的FPGA知识、编程能力和解决实际问题的能力。希望考生们能够充分准备,充实自己的专业知识,以期在这次笔试中取得好成绩。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值