前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >djskdskhd

djskdskhd

作者头像
清墨
发布2019-04-18 16:50:02
4000
发布2019-04-18 16:50:02
举报
文章被收录于专栏:清墨_iOS分享清墨_iOS分享

.h

代码语言:javascript
复制
#import <UIKit/UIKit.h>

@interface Person : NSObject

@property (nonatomic, copy) NSString *name;

@end


typedef void(^PersonBlock)(Person *);

@interface ViewController : UIViewController

@property (nonatomic, copy) PersonBlock myBlcok;

@end

.m

代码语言:javascript
复制
#import "ViewController.h"

@implementation Person

@end

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self testBlock];
}


-(void)testBlock{
    Person *p1 = [[Person alloc]init];
    p1.name = @"p1";
    
    Person *p2 = [[Person alloc]init];
    p2.name = @"p2";
    
    Person *p3 = [[Person alloc]init];
    p3.name = @"p3";
    
    NSArray *arr = @[p1,p2,p3];
    
    for (Person *p in arr) {
        
        int i=2;
        dispatch_async(dispatch_get_main_queue(), ^{
            NSLog(@"没传参数时%@",p.name);
            NSLog(@"%d",i);
        });
        i=4;
        
        _myBlcok = ^(Person *p){
            NSLog(@"传递参数时%@",p.name);
        };
        _myBlcok(p);
        
        p.name = @"p-new";
    }
    
    
    void (^Block)(int) = ^(int i){
        NSLog(@"值是%d",i*2);
    };
    int a = 4;
    Block(a);
    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"主线程调用最后值是%d",a*2);
    });
    a = 6;
    
    
}


@end

结果:

代码语言:javascript
复制
2019-04-11 15:51:11.475200+0800 Block[63860:3183459] 传递参数时p1
2019-04-11 15:51:11.475373+0800 Block[63860:3183459] 传递参数时p2
2019-04-11 15:51:11.475499+0800 Block[63860:3183459] 传递参数时p3
2019-04-11 15:51:11.475609+0800 Block[63860:3183459] 值是8
2019-04-11 15:51:11.481302+0800 Block[63860:3183459] 没传参数时p-new
2019-04-11 15:51:11.481674+0800 Block[63860:3183459] 2
2019-04-11 15:51:11.481816+0800 Block[63860:3183459] 没传参数时p-new
2019-04-11 15:51:11.481919+0800 Block[63860:3183459] 2
2019-04-11 15:51:11.482052+0800 Block[63860:3183459] 没传参数时p-new
2019-04-11 15:51:11.482152+0800 Block[63860:3183459] 2
2019-04-11 15:51:11.482262+0800 Block[63860:3183459] 主线程调用最后值是8
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档