利用block完成回调,小demo一个

利用block完成回调,小demo一个。闲话少说,直接上代码了!O(∩_∩)O~

TestObject.h

#import <Foundation/Foundation.h>

typedef void (^FinishBlock)(NSString *backStr);

@interface TestObject : NSObject

//能进行回调的方法
- (void)playSomeTime:(FinishBlock)block;

@end

TestObject.m

#import "TestObject.h"

@implementation TestObject

- (void)playSomeTime:(FinishBlock)block{

    for (int i = 0; i< 5000; i++) {
        NSLog(@"i===%d",i);
    }
    block(@"被回调的字符串O(∩_∩)O~");
}

@end

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

ViewController.m

#import "ViewController.h"
#import "TestObject.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    TestObject *obj = [[TestObject alloc] init];
    [obj playSomeTime:^(NSString *backStr){
        NSLog(@"回调完成,被返回的结果===%@",backStr);
    }];
    NSLog(@"这是同步操作,需要等待回调完成");
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

@end

利用block完成回调,小demo一个,布布扣,bubuko.com

时间: 2024-08-05 06:37:59

利用block完成回调,小demo一个的相关文章

如何结合场景利用block进行回调

我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下: 1.我现在玩手机 2.突然手机没有电了 3.我只好让手机开始充电 4.充电的过程中我好无聊,我要去看电视,但是我不会一直看电视,我要等手机电充满了停止看电视,继续去玩手机 5.我开始看电视 6.手机电充好了,我听到手机响了一下,我不看电视了我继续去玩手机. 这个场景中哪里跟回调类似呢?哪里跟通知类似呢?其实我们可以认为手机充好电了通过回调的方式

【转】block一点也不神秘————如何利用block进行回调

我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下: 1.我现在玩手机 2.突然手机没有电了 3.我只好让手机开始充电 4.充电的过程中我好无聊,我要去看电视,但是我不会一直看电视,我要等手机电充满了停止看电视,继续去玩手机 5.我开始看电视 6.手机电充好了,我听到手机响了一下,我不看电视了我继续去玩手机. 这个场景中哪里跟回调类似 呢?哪里跟通知类似呢?其实我们可以认为手机充好电了通过回调的方

Swift 用Delegate和Block实现回调的Demo

一.有关回调 我们知道,执行函数的时候,一般都有return作为返回参数了,那有return了为什么还要回调呢? 回调是为了实现异步的返回,在某些特殊的情况下,比如你执行的函数是一个长时间运行的函数,并不能直接返回给你结果,为了不影响源程序其他步骤的执行,你得继续执行下去,等那边产生结果了再“主动告诉你”结果是什么. (我考虑了一下,如果使用多线程+return的方式,也许也是能够实现异步的,但并不是万能的,因为子线程中不能做UI处理) 在iOS开发中,实现回调的方式有:Delegate和Blo

利用block 在网络请求回调方式上优化整合代码

项目中经常会遇到一些重复性的劳动,别的不扯远,就说HTTP和SOCKET,发送请求,得到成功返回或失败返回.每次我都需要在不同的逻辑层次中处理成功.失败两个的回调,这样带来的劣势就是代码显得分散和冗长,重复代码很多.于是我利用block,将这一问题做了优化.本文利用ASIHttpRequest库,以最基本的HTTP请求,GET方法为例,说明这一方法. 最终的效果: 1 [[PPDHttpRequest shareInstance] requestWithUrlString:@"http://19

第一个spring小demo

工作中用spring有一年多了,基本弄懂了bean配置文件的配置,但是却没有对spring配置文件,加载有更多的认识,今天动手写了第一个spring的小demo. 这个demo之前是想做web版的,但是web的启动比较麻烦,不如直接使用main方法执行直观,所以,就使用main方法来读取配置文件,启动spring. 看一下项目的结构  其中src部分是项目源码 和 配置文件applicationContext.xml WebContent 目录下面的WEB-INF/lib 目录下面存放的是spr

javascript 跟随鼠标移动的提示框的一个小demo

下面提供一种跟随鼠标移动的提示框的思路,方便在以后工作中应用,主要是应用到鼠标移动产生的数值来进行移动提示框的定位... CSS代码   .box{height:100px;width:100px;background:orange;position:relative;margin:40px;} .move{height:20px;width:20px;background:red;position:absolute;left:0px;top:0px;display:none;} HTML代码

jQuery 中 ajax 提交数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名问题 ... ajax02.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="form&qu

一周一个小demo — 前端后台的交互实例

这一周呢,本K在大神的指导下,完成了一个利用ajax与php文件上传处理相结合的一个留言板功能的小实例,下面就让本K来带大家瞅瞅如何实现这一种功能. 一.界面概览 首先我们来看一下这个小demo的具体效果. 这个demo中,主要包括了三个步骤,也分别对应了三个功能,分别是注册,登录与留言板功能.而这三个功能基本都借助了前后台交互的几种技术,下面,本K就给大家分别展示一下这三个功能实现的代码. 二.功能实现 1.注册功能与登录功能 1.1 代码展示 1.1.1 注册功能 (1)前段部分 <!DOC

Android学习小Demo(19)利用Loader来实时接收短信

之前写过一篇文章<Android学习小Demo(13)Android中关于ContentObserver的使用>,在里面利用ContentOberver去监测短信URI内容的变化.我们先来回顾一下,是如何利用ContentOberver来监测短信内容的变化的. 1)要自定义一个类,比如SmsContentObserver,继承ContentObserver,并且实现其onChange方法. 2)在onChange方法中去查询对应Uri,比如短信收件箱的内容,并将对应的记录利用Handler发送