美文网首页
ios block详解

ios block详解

作者: 知本集 | 来源:发表于2016-12-22 21:58 被阅读31次

什么是typedef?

typedef就是一种替换,与宏不同的是它还可以进行对象的声明。

typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。

例如:

typedef int NSInteger;

表示对NSInteger进行了一个别名的设置,其表示的就是long或者int类型。

char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,和一个字符变量;

即* pa 和 pb,pb是没有* 的

// 以下则可行:

typedef char* PCHAR;

PCHAR pa, pb;则是两个指针。

使用typedef来定义一个block

1.typedef void(^AAABlock)(NSString *string);

2.typedef int(^BBBBlock)(NSString *string);

3.typedef int(^CCCBlock)(void);

1是我们定义了一个名为AAABlock的block,它的返回值是void,接受参数为NSString类型的string。

2是我们定义了一个名为BBBBlock的block,它的返回值是int,接受参数为NSString类型的string。

3是我们定义了一个名为CCCBlock的block,它的返回值是int,没有参数。

以此类推。

这里主要讲一下如何在具体方法中实现block回调

我们以AFNetworking封装为例子。

首先定义两个回调处理的block:

typedef void(^SuccessBlock)(id responseBody);

typedef void(^FailureBlock)(NSString *error);

此时我们定义一个方法,参数中加入block:

-(void)postDataToServer:(NSMutableDictionary*)parameters url:(NSString*)url successBlock:(SuccessBlock)successBlock failureBlock:(FailureBlock)failureBlock{

可以看到上面的方法中,方法中都带上了block参数。

接着方法的编写:

-(void)postDataToServer:(NSMutableDictionary*)parameters url:(NSString*)url successBlock:(SuccessBlock)successBlock failureBlock:(FailureBlock)failureBlock{

[manager POST:urlStr parameters:parameters success:^(AFHTTPRequestOperation*operation,id responseObject){

successBlock(responseObject);

}failure:^(AFHTTPRequestOperation*operation,NSError*error){

}];

}

此时完成方法的编写。

然后我们来调用这个方法:

[[NetworkSingleton sharedManager] postDataToServer:postDict url:[NSString stringWithFormat:@""] successBlock:^(id responseBody) {

//业务代码

}failureBlock:^(NSString*error) {

//业务代码

}];

这样,一个block具体使用就完成了。

感谢指教。

相关文章

  • iOS Block实例

    iOS之Block详解:Block详解 ViewController.h(ARC) ViewController....

  • iOS 题目详解 部分三

    主要讲解Block 内部使用strongSelf的理由和用法 iOS 题目详解 部分一iOS 题目详解 部分二...

  • Block - block简单的使用

    参考文档 iOS Block详解 一、忘记block格式? 样例一.png 样例二.png 二、Block的定义 ...

  • iOS开发相关网址

    //block详解(清晰明了)http://www.cocoachina.com/ios/20160414/159...

  • SDWebImage4.0源码探究(二)具体代码拓展

    代码一 知识点:block参考:iOS中block的详解weakSelf、strongSelf <转自唐巧>Blo...

  • iOS开发---Block详解

    iOS开发---Block详解 Block的基础 什么是Blocks? 用一句话来描述:带有自动变量的匿名函数(是...

  • iOS Block 详解

    xcrun -sdk iphonesimulator clang -rewrite-objc ViewContro...

  • ios block详解

    什么是typedef? typedef就是一种替换,与宏不同的是它还可以进行对象的声明。 typedef为C语言的...

  • iOS Block详解

    1、概述 闭包 = 一个函数「或指向函数的指针」+ 该函数执行的外部的上下文变量「也就是自由变量」;Block 是...

  • [iOS]block详解

    1、block简介 block字面意思就是代码块 iOS4.0 Apple引入的特性 block是Objectiv...

网友评论

      本文标题:ios block详解

      本文链接:https://www.haomeiwen.com/subject/uxphvttx.html