使用Block模拟网络请求回调

//
//  JLViewController.m
//  Block实现回调
//
//  Created by XinYou on 15-5-8.
//  Copyright (c) 2015年 vxinyou. All rights reserved.
//

#import "JLViewController.h"

@interface JLViewController ()

@end

@implementation JLViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    
    [self getUserInfoByToken:@"201505080010BBFFKKIIIOSINBJJHF" success:^(NSString *userName, NSString *openId) {
        
        // 打印从服务器获取到的数据
        NSLog(@"userName:%@, openId:%@", userName, openId);
    }];
}


/**
 *  模拟从服务器获取数据
 *  根据token获取用户信息
 */
- (void)getUserInfoByToken:(NSString *)token success:(void (^)(NSString *userName, NSString *openId))success{
    
    // 创建一个并行队列
    dispatch_queue_t q = dispatch_queue_create("bing_xing", DISPATCH_QUEUE_CONCURRENT);
    
    // 执行异步任务
    dispatch_async(q, ^{
        
        // 子线程中模拟访问网络,让子线程睡眠4秒
        [NSThread sleepForTimeInterval:4.0];
        
        // 打印当前线程,由打印结果可知:当前为子线程
//        NSLog(@"%@", [NSThread currentThread]);
        
        // 假设从服务器获取到的数据
        NSString *username = @"zhangsan";
        NSString *openid = @"123456";
        
        // 在主线程中执行下面代码
        dispatch_async(dispatch_get_main_queue(), ^{
            
            // 打印当前线程,由打印结果可知:当前为主线程
//            NSLog(@"%@", [NSThread currentThread]);
            
            success(username, openid);
        });
    });
    
}

@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值