//
// main.m
// OC5_Block
//
// Created by zhangxueming on 15/6/26.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h>
//block //函数指针 int add(int a, int b)// int (*)(int , int)
{
return a+b;
} typedef int (* Padd)(int, int); //block 是OC中的数据类型,用来保存一段代码块
typedef int(^ addBlock) (int, int);// int (^ ) (int , int) typedef int (^ MyBlock) (int, int); int main(int argc, const char * argv[]) {
@autoreleasepool {
Padd func=add;
NSLog(@"add =%i", func(,)); //不带参数的block
// void (^printBlock)(void)= nil;
// printBlock = ^(void)
// {
// NSLog(@" *");
// NSLog(@" ***");
// NSLog(@"*****");
// };
// NSLog(@"%p", printBlock);
// printBlock();
// printBlock();
//省约(void)
void (^printBlock)(void) = ^{
NSLog(@" *");
NSLog(@" ***");
NSLog(@"*****");
};
printBlock(); //带参数的block
int (^minusBlock)(int, int)=^(int a, int b)
{
return a-b;
}; NSLog(@"sub = %i", minusBlock(,)); //block可以直接读取block外部变量, 但是不能修改, 如果要修改block外部变量的值,需要在变量的前面 加 __block关键字 __block int num=; void (^numBlock)(void)=^{
NSLog(@"num = %i", num);
}; numBlock(); void (^setNumBlock)(int) = ^(int value)
{
num = value;
NSLog(@"num = %i", num);
}; setNumBlock(); //block 与 typedef
MyBlock multiBlock = ^(int a, int b)
{
return a*b;
}; NSLog(@"mul = %i", multiBlock(, ));
}
return ;
}

OC5_Block的更多相关文章

随机推荐

  1. 用ASP实现简单的繁简转换

    用ASP实现简单的繁简转换 国际化似乎是一个很流行的口号了,一个站点没有英文版至少也要弄个繁体版,毕竟都是汉字,翻译起来不会那么麻烦:P 一般的繁简转换是使用字典,通过GB的内码算出BIG5字符在字典 ...

  2. android-square-progressbar-legacy

    https://github.com/eltld/android-square-progressbar-legacy

  3. iOS开发——开发必备OC篇&UITableView设置界面完整封装(二)

    UITableView设置界面完整封装(二) 简单MVC实现UITableView设置界面之Cell右边类型设置 首先来看看第一种方法证明使用,结合两种方法之后根据个人的爱好去选择就可以了, 一:使用 ...

  4. SQLServer恢复表级数据

    最近几天,公司的技术维护人员频繁让我恢复数据库,因为他们总是少了where条件,导致update.delete出现了无法恢复的后果,加上那些库都是几十G.恢复起来少说也要十几分钟.为此,找了一些资料和 ...

  5. SSD(固态硬盘)简介

    http://www.jinbuguo.com/storage/ssd_intro.html

  6. select,epoll的比较

    机制: select:只支持水平触发(数据不处理完无限通知) epoll:支持水平触发和边缘触发(仅通知一次) 单进程监控FD个数 select: 由FD_SETSIZE设置,默认值是2048.在大量 ...

  7. Golang学习 - unicode 包

    ------------------------------------------------------------ const ( MaxRune = '\U0010FFFF' // Unico ...

  8. Is an MTD device a block device or a char device?

    转:http://www.linux-mtd.infradead.org/faq/general.html#L_mtd_what Note, you can find Ukranian transla ...

  9. SQL VS NoSQL 如何选择数据库

    在前一篇文章中我们主要的讨论了SQL与NoSQL数据库之间的主要的差别.接下来,我们将会利用上一篇中的知识来确定在特定的场景中如何确定比较好的选择. 首先我们先来总结一下: SQL数据库: ​使用表存 ...

  10. LeetCode40 Combination Sum II

    题目: Given a collection of candidate numbers (C) and a target number (T), find all unique combination ...