zoukankan      html  css  js  c++  java
  • Block作为方法参数传值的应用

     1 #import "FristViewController.h"
     2 #import "AppDateSource.h"
     3 @interface FristViewController ()
     4 @property(nonatomic,strong)UILabel *showTextLabel;
     5 @end
     6 
     7 @implementation FristViewController
     8 
     9 - (void)viewDidLoad {
    10     [super viewDidLoad];
    11     // Do any additional setup after loading the view.
    12     UILabel *showTextLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 150, 50)];
    13     showTextLabel.text = @"帅哥美女";
    14     showTextLabel.backgroundColor = [UIColor yellowColor];
    15     showTextLabel.textAlignment = NSTextAlignmentCenter;
    16     [self.view addSubview:showTextLabel];
    17     UIButton *sendMesssageBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    18     sendMesssageBtn.backgroundColor = [UIColor yellowColor];
    19     [sendMesssageBtn setTitle:@"发送" forState:UIControlStateNormal];
    20     sendMesssageBtn.frame = CGRectMake(100, 300, 150, 50);
    21     [sendMesssageBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    22     [sendMesssageBtn addTarget:self action:@selector(sendMesssageAction) forControlEvents:UIControlEventTouchUpInside];
    23     [self.view addSubview:sendMesssageBtn];
    24     self.showTextLabel = showTextLabel;
    25     
    26 }
    27 -(void)sendMesssageAction
    28 {
    29 #warning 第四步:block回调,即实现block
    30     AppDateSource *dataBlock = [[AppDateSource alloc] init];
    31     //调用方法,实现Block作为方法参数
    32     [dataBlock sendMessage:@10086 andBlock:^(NSString *stirng) {
    33         self.showTextLabel.text = stirng;
    34     }];
    35     
    36     //总结:Block作为方法参数传值应用场景:一般是在处理数据的Model层进行使用;具体步骤:
    37     //1.对Block进行typedef
    38     //2.声明方法是Block作为方法参数
    39     //3.实现声明的方法,将要传递的内容传递出去
    40     //4.实现Block的回调
    41 }
    1 #import <Foundation/Foundation.h>
    2 #warning 第一步:Block的重定义typedef
    3  typedef void(^AppDateSourceBlock)(NSString *stirng);
    4 @interface AppDateSource : NSObject
    5 #warning 第二步:声明方法,让Block作为方法参数
    6 -(void)sendMessage:(NSNumber *)number andBlock:(AppDateSourceBlock)block;
    7 @end
     1 #import "AppDateSource.h"
     2 
     3 @implementation AppDateSource
     4 #warning 第三步:实现Block作为方法参数的那个方法
     5 -(void)sendMessage:(NSNumber *)number andBlock:(AppDateSourceBlock)block
     6 {
     7     NSString *string = [NSString stringWithFormat:@"%ld",[number integerValue]];
     8     block(string);
     9     
    10 }
    11 @end
  • 相关阅读:
    简单的模板解析函数
    HTML通过事件传递参数到js 二 event
    HTML通过事件传递参数到js一
    通过this获取当前点击选项相关数据
    LeetCode 20. 有效的括号(Valid Parentheses)
    LeetCode 459. 重复的子字符串(Repeated Substring Pattern)
    LeetCode 14. 最长公共前缀(Longest Common Prefix)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    LeetCode 171. Excel表列序号(Excel Sheet Column Number) 22
    LeetCode 665. 非递减数列(Non-decreasing Array)
  • 原文地址:https://www.cnblogs.com/DevinSMR/p/5218166.html
Copyright © 2011-2022 走看看