美文网首页
iOS - block基本使用

iOS - block基本使用

作者: 小例子 | 来源:发表于2019-04-01 17:36 被阅读0次

block的概念

  • OC在C的基础之上新增了一些数据类型。

BOOL
Boolen
class
nil
SEL
id
block

  • block是1个数据类型。
    int double float char ......
    既然是一个数据类型,那么就可以声明这个数据类型的变量,所以我们完全也可以声明1个block类型的变量
    不同类型的变量中可以存储以下数据:
    1. block是一个数据类型,所以我们可以声明1个block类型的变量
    2. block类型的变量中专门存储1段代码,这段代码可以有参数,可以有返回值。

block的使用

  1. 无参数,无返回值,声明和定义
//1.无参数,无返回值,声明和定义
        void(^MyBlockOne)(void) = ^(void){
            
            NSLog(@"无参数,无返回值");
            
        };
        MyBlockOne();//block的调用
  1. 有参数,无返回值
//2.有参数无返回值
        void(^block2)(int a) = ^(int a){
            NSLog(@"%d,我就是block,有参数,无返回值",a);
        };
        block2(10);
  1. 有参数,有返回值
//3.有参数有返回值
        int(^block3)(int,int) = ^(int a,int b){
            NSLog(@"%d我就是block,有参数,有返回值",a+b);
            return a+b;
        };
        block3(10,30);
  1. 无参数有返回值(很少用到)
//4.无参数有返回值(很少用到)
        int(^block4)(void) = ^ {
            return 45;
        };
        NSLog(@"%d",block4());
  1. 在项目中的实际应用
#import <Foundation/Foundation.h>
typedef int (^myBlock)(int a,int b);

@interface Person : NSObject
@property(nonatomic,copy)myBlock myblock1;
- (void)createStoreKitPaymentWithCompletionHandler:(void(^)(int a))completionHandler;
@end

//=================================================================================

#import "Person.h"
@implementation Person
- (void)createStoreKitPaymentWithCompletionHandler:(void(^)(int a))completionHandler
{
    NSLog(@"创造a");
    completionHandler(2);
}
@end

//=================================================================================

Person *per = [[Person alloc]init];
per.myblock1 = ^int(int a, int b) {
     return a+b;
};
    
NSLog(@"%d",per.myblock1(1,2));  
[per createStoreKitPaymentWithCompletionHandler:^(int a) {
     NSLog(@"%d",a);
}];

相关文章

  • iOS Block存储域及循环引用

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block __block说明符...

  • iOS Block实现原理

    系列文章:iOS Block概念、语法及基本使用iOS Block __block说明符iOS Block存储域及...

  • iOS Block __block说明符

    系列文章:iOS Block概念、语法及基本使用iOS Block实现原理iOS Block存储域及循环引用 上一...

  • block的使用和注意

    iOS学习-(1)block的使用和注意 本文简介 本文主要介绍1.block的基本使用 ...

  • iOS block基本使用

    block的感觉是越用越喜欢,下面就简单说说她的基本使用,block基本有下面四种情况。 1.无参数无返回值 2....

  • iOS - block基本使用

    block的概念 OC在C的基础之上新增了一些数据类型。 BOOLBoolenclassnilSELidblock...

  • iOS开发 多视角抛析匿名函数—— Block

    一.Block的基本使用1.概念在iOS开发中Block的使用随处可见,使用场景也非常多,例如在网络中进行网络请求...

  • iOS之block基本使用

    block在iOS日常开放中已经越来越受欢迎了,小结一下,填补之前遇到的坑 block block的作用:是用来保...

  • iOS Block的基本使用

    例行科普 Block 是 iOS4 之后添加的一种语法结构,也成为闭包,或者匿名函数,在iOS开发过程中应用较多,...

  • iOS Block基本使用(一)

    什么是Block?Block 又称为“块” 或 “代码块”,作用是用来保存代码,保存在其内部的代码块 如果Bloc...

网友评论

      本文标题:iOS - block基本使用

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