iOS block示例
//
// block.h
// Block
//
// Created by tqh on 15/4/12.
// Copyright (c) 2015年 tqh. All rights reserved.
// #import <Foundation/Foundation.h> typedef void(^block1) (id obj); typedef void(^block2)(); typedef NSInteger(^block3)(); @interface block : NSObject //带参数
+ (void)initBlock1:(void(^)(id obj))block sum:(NSInteger)sum; //typdef
+ (void)initBlock11:(block1)block sum:(NSInteger)sum; //不带参
+ (void)initBlick2:(void(^)())block sum:(NSInteger)sum; //typedef
+ (void)initBlock22:(block2)block sum:(NSInteger)sum; + (void)blockTest:(block2)block; + (void)initBlock3:(block3)block sum:(NSInteger)sum; @end
//
// block.m
// Block
//
// Created by tqh on 15/4/12.
// Copyright (c) 2015年 tqh. All rights reserved.
// #import "block.h" @implementation block + (void)initBlock1:(void (^)(id))block sum:(NSInteger)sum{
NSString *str = @"返回字符串";
if (sum > ) {
block(str);
}
} + (void)initBlock11:(block1)block sum:(NSInteger)sum{
NSString *str = @"返回字符串";
if (sum > ) {
block(str);
}
} + (void)initBlick2:(void (^)())block sum:(NSInteger)sum{ if (sum > ) {
block();
} } + (void)initBlock22:(block2)block sum:(NSInteger)sum{ if (sum > ) {
block();
} } +(void)blockTest:(block2)block
{
block();
} +(void)initBlock3:(block3)block sum:(NSInteger)sum{ NSInteger index = block();
NSLog(@"%ld",index); } @end
//
// main.m
// Block
//
// Created by tqh on 15/4/12.
// Copyright (c) 2015年 tqh. All rights reserved.
// /**
* block回调
*
* @param argc
* @param argv
*
* @return
*/ #import <Foundation/Foundation.h>
#import "block.h"
int main(int argc, const char * argv[]) {
@autoreleasepool { [block initBlock1:^(id obj) {
NSLog(@"%@",obj);
} sum:]; [block initBlock11:^(id obj) {
NSLog(@"%@",obj);
} sum:]; [block initBlick2:^{
NSLog(@"block2");
} sum:]; [block initBlick2:^{
NSLog(@"block22");
} sum:]; [block blockTest:^{
NSLog(@"");
}]; [block initBlock3:^NSInteger{
return ;
} sum:];
}
return ;
}
iOS block示例的更多相关文章
- iOS block从零开始
iOS block从零开始 在iOS4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调. block的结构 先来一段简单的代码看看: void ...
- # iOS Block的本质(三)
iOS Block的本质(三) 上一篇文章iOS Block的本质(二)中已经介绍过block变量的捕获,本文继续探寻block的本质. 1. block对对象变量的捕获,ARC 环境 block一般 ...
- iOS Block界面反向传值
在上篇博客 <iOS Block简介> 中,侧重解析了 iOS Block的概念等,本文将侧重于它们在开发中的应用. Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C ...
- iOS block 机制
本文要将block的以下机制,并配合具体代码详细描述: block 与 外部变量 block 的存储域:栈块.堆块.全局块 定义 块与函数类似,只不过是直接定义在另一个函数里,和定义它的那个函数共享同 ...
- ios Block详细用法
ios Block详细用法 ios4.0系统已开始支持block,在编程过程中,blocks被Obj-C看成是对象,它封装了一段代码,这段代码可以在任何时候执行.Blocks可以作为函数参数或者函数的 ...
- iOS Block的本质(四)
iOS Block的本质(四) 上一篇文章iOS Block的本质(三)中已经介绍过block变量的捕获,本文继续探寻block的本质. 1. block内修改变量的值 int main(int ar ...
- iOS Block的本质(二)
iOS Block的本质(二) 1. 介绍引入block本质 通过上一篇文章Block的本质(一)已经基本对block的底层结构有了基本的认识,block的底层就是__main_block_impl_ ...
- iOS Block的本质(一)
iOS Block的本质(一) 1.对block有一个基本的认识 block本质上也是一个oc对象,他内部也有一个isa指针.block是封装了函数调用以及函数调用环境的OC对象. 2.探寻block ...
- (译)IOS block编程指南 1 介绍
Introduction(介绍) Block objects are a C-level syntactic and runtime feature. They are similar to stan ...
随机推荐
- SQL语句基础之 单表查找
Sql语句之 单表查询 一.一般查询 1.查看表中的所有记录 以及 所有字段(属性) 语句 : select * from student; 2.只查看某些字段 语句:select sname,sex ...
- Linux中printf格式化输出
printf使用文本或者由空格分隔的参数,我们可以在printf中使用格式化字符串.printf不会写像echo那样自动添加换行符,必须手动添加 =========================== ...
- 通过Maven搭建Mybatis项目
学习通过maven工程搭建Mybatis工程开启对M ybaits的学习总结之旅. 1.首先创建Maven工程. 2.在pom.xml文件中加入依赖的jar <!-- mybatis核心包 -- ...
- RMAN - "丢失控制文件的恢复"
OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...
- db2建立表空间
--缓冲池 CREATE BUFFERPOOL EMP_BUF_POOL IMMEDIATE ALL DBPARTITIONNUMS SIZE 250 NUMBLOCKPAGES 0 PAG ...
- Effiective C++ (一)
最近在看Effective C++ ,同时将总结一下里边的重要知识点: ########################## module 1 #################### ...
- firebreath 在谷歌和火狐浏览器下的调试 以及打包
在寻找插件开发资料的过程中找到了一个开发浏览器插件的开源项目——firebreath firebreath的安装以及测试我就不再叙述了,可以参考大神的文章 . http://www.blogjava. ...
- P1179: [Apio2009]Atm
缩点+spfa最短路,因为最终不可能有环,所以直接spfa. ; type node=record f,t:longint; end; var n,m,s,i,j,ans,cnt,num,u,x,dg ...
- STL学习三:deque容器
1.Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. deque在接口上和vector非常 ...
- android Service Activity交互之传递复杂数据类型的远程服务
远程服务往往不只是传递java基本数据类型.这时需要注意android的一些限制和规定: android支持String和CharSequence 如果需要在aidl中使用其他aidl接口类型,需要i ...