美文网首页
OC--链式编程思想

OC--链式编程思想

作者: HotRay | 来源:发表于2017-10-20 09:47 被阅读0次

1.block 基本使用是控制器之间的通讯使用。
2.block 高级使用则是,作为链式编程来使用, Masonry 是典型的链式编程,响应试编程则是RAC。
简单Dome,person类
//person.h
1.1 block定义,控制器之间的通讯如下 ,block 作为属性
/*
--单纯的属性block。
*/
@property (nonatomic,strong) void(^blocktext1)();

//实现block
Person *p = [[Person alloc] init];
//建议使用第一种方式,简单快捷!系统直接给你生成
[p setBlocktext1:^{

}];
p.blocktext1 = ^{
   
};

1.2typedef定义block ,block作为函数参数
/*
typedef 定义,以下全部使用
*/
typedef void (^blocktypeNull) ();
typedef void (^blocKtypePar) (NSInteger age,NSString *name);
typedef int (^blocktypeReturn)();

/*
--block作为函数参数----
/
/
1.<block无参数的函数*/

  • (void)Textblocks:(blocktypeNull ) block;
    /* 2.<block带参数的函数*/

  • (void)textblocksPar:(blocKtypePar) Detailpar;
    /* 2.<block带返回值*/

  • (void)textblockReturn:(int (^)(int age)) returnpar;

  • (void)testblockreturn:(blocktypeReturn) testblock;
    /*
    --block 做为函数返回值----
    */

/* 1.<block作为函数返回值 无参数*/

  • (blocktypeNull) TextonereturnPar;
    /* 2.<block作为函数返回值 有参数*/
  • (blocKtypePar) textTowReturnPar;
    /* 3.<block作为函数有回值 有参数*/
  • (blocktypeReturn) TextThessReturnPar;

-----<Person.m>
-(void)Textblocks:(blocktypeNull)block{
block();
}

  • (void)testblockreturn:(blocktypeReturn)testblock{

    int age = testblock();
    NSLog(@"%d",age);

}

  • (void)textblockReturn:(int (^)(int age))returnpar{
int a =  returnpar(40);
NSLog(@"%d",a);

}
-(void)textblocksPar:(blocKtypePar)Detailpar{
if (Detailpar != nil) {
NSInteger Age = 22;
NSString *name = @"Ray";
Detailpar(Age,name);

}

}

  • (blocKtypePar)textTowReturnPar{
return ^(NSInteger age ,NSString *name){
    NSLog(@"age = %ld",age);
    NSLog(@"name = %@",name);
    
};

}

  • (blocktypeNull)TextonereturnPar{
return ^(){
    
    NSLog(@"无参数的 函数block");
};

}

  • (blocktypeReturn)TextThessReturnPar{
return ^int(){
    return 30;
    
};

}
VIewController控制器 实现方法
Person *p = [[Person alloc] init];
[p Textblocks:^{

    NSLog(@"无参数无返回值");

}];

[p textblocksPar:^(NSInteger age, NSString *name) {
    NSLog(@"%ld%@",age,name);
}];


[p textblockReturn:^int(int age) {

    return  age;
}];

[p  testblockreturn:^int{
    NSLog(@"进来了");
    return 30;
}];

//链式编程
p.textTowReturnPar(10,@"20");//在这里全部都是调用
p.TextonereturnPar();
int a = p.TextThessReturnPar();

相关文章

  • OC--链式编程思想

    1.block 基本使用是控制器之间的通讯使用。2.block 高级使用则是,作为链式编程来使用, Masonry...

  • 链式编程思想

    链式编程思想 链式编程思想

  • 一、链式编程思想、响应式编程思想和函数式编程

    1. 链式编程思想 链式编程思想的核心就是方法的返回值必须是Block,Masonry是链式编程思想应用的代表。 ...

  • 链式编程思想简介

    链式编程思想简介

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • Swift 链式编程思想让你的代码更优雅

    Swift链式编程思想 一、知识小集锦 在介绍链式编程思想之前,我们先了解一下我们所知道的一些编程思想: l面向过...

  • Swift 链式编程思想学习

    Swift链式编程思想 一、知识小集锦 在介绍链式编程思想之前,我们先了解一下我们所知道的一些编程思想: l面向过...

  • 编程思想-链式编程

    编程思想-链式编程 链式编程(链式调用)的主要表现是支持点语法结构的代码,代表库可以参照 Masonry 或 Sn...

  • 链式编程思想

    # 1,链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性提高。 2,链式编...

  • 链式编程思想

    什么是链式编程?顾名思义,链式编程是通过一行代码,实现某种功能。这里比较经典的案例就是masonry框架,相信对于...

网友评论

      本文标题:OC--链式编程思想

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