block使用的一个例子

原创 2015年11月19日 11:39:23

.h
// Copyright © 2015年 1. All rights reserved.
//

import

import “BlockDemoViewController.h”

import “BlockCustomItem.h”

import “BlockCustomButton.h”

@interface BlockDemoViewController ()

@end

@implementation BlockDemoViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    BlockCustomItem *customItem = [[BlockCustomItem alloc] init];
    customItem.block = ^{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@”提示” delegate:self cancelButtonTitle:@”取消” otherButtonTitles:@”确定”, nil];
    [alert show];
    };

    BlockCustomButton *blockButton = [BlockCustomButton buttonWithType:UIButtonTypeCustom];
    blockButton.frame = CGRectMake(50, 100, 100, 30);
    blockButton.backgroundColor = [UIColor colorWithRed:59.0/255.0 green:249.0/255.0 blue:199.0/255.0 alpha:1.0];
    blockButton.item = customItem;
    [blockButton addTarget:self action:@selector(blockButtonAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:blockButton];
    }

  • (void)blockButtonAction:(BlockCustomButton *)button {
    if (button.item.block) {
    button.item.block();
    }
    }

  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

@end

.h

import

import “BlockCustomItem.h”

@interface BlockCustomButton : UIButton

@property (nonatomic, strong) BlockCustomItem *item;

@end

.m

import “BlockCustomButton.h”

@implementation BlockCustomButton

@end

.h

import

import “BlockCustomItem.h”

@implementation BlockCustomItem

  • (id)init {
    self = [super init];
    if (self) {
    self.title = @”“;
    }
    return self;
    }

@end

block使用copy原理

简单来说,block就像一个函数指针,指向我们要使用的函数。 就和函数调用一样的,不管你在哪里写了这个block,只要你把它放在了内存中(通过调用存在这个block的方法或者是函数),不管放在栈...
  • leonliu070602
  • leonliu070602
  • 2016年10月31日 14:01
  • 287

IOS中 Block用法进阶二 局部变量和全局变量在Block中的使用

一、局部变量与block块 先看下面代码: int number=100; void (^TestBlock)(int)=^(int x){ number=number+x; }; TestBlock...
  • zm_yh
  • zm_yh
  • 2016年05月21日 11:36
  • 8025

代理和block各自的优缺点和使用场景

block 和 delegate 都可以通知外面。block 更轻型,使用更简单,能够直接访问上下文,这样类中不需要存储临时数据,使用 block 的代码通常会在同一个地方,这样读代码也连贯。dele...
  • ios_xumin
  • ios_xumin
  • 2017年04月20日 13:41
  • 421

IOS中 Block用法进阶三 关于存储变量和应用举例

一、存储变量本质分析 先看下面这段代码和运行结果。 int number=100; int (^testBlock)(int)=^(int x){ return n...
  • zm_yh
  • zm_yh
  • 2016年05月25日 09:32
  • 864

Block属性声明strong和retain竟然不一样

Block用retain和copy修饰的区别
  • songchunmin_
  • songchunmin_
  • 2016年05月26日 14:50
  • 1905

Linux设备驱动实例

13 Linux块设备驱动         块设备是字符设备并列的概念,这两类设备在Linux中驱动的结构有较大差异,总体而言,块设备驱动比字符设备驱动要复杂得多,在I/O操作上表现出极大的不同,缓冲...
  • u011014707
  • u011014707
  • 2015年09月14日 14:21
  • 996

Block 理解 总结 使用demo 通俗易懂

以下是个人对block的理解: 虽没有更深入的了解内部实现机理,但总结了block的的使用,和个人理解 对block使用不熟练或者入门的童鞋们来说应该有所启发 demo 下载地址: Block d...
  • qq_32010299
  • qq_32010299
  • 2016年01月07日 16:16
  • 438

使用 block 的小技巧和注意事项

block 捕获环境变量带来的好处和副作用
  • x1q2l3
  • x1q2l3
  • 2016年03月25日 10:47
  • 1017

iOS之Block代码块的定义及使用

现在的无论是框架还是项目中,越来越多的使用block代码块。 个人觉得:第一可以使代码看起来更简单明了,第二可以取代以前的delegate使代码的逻辑看起来更清晰。 借一张图表达基本定义: ...
  • LVXIANGAN
  • LVXIANGAN
  • 2015年01月28日 13:01
  • 8367

block的声明创建以及使用

block的声明 block的创建 访问权限 回调的用法 本人从事这么久,发现周边还是很多从事iOS的程序猿不怎么了解block 用法,即便他们其中还有几年的开发经验,但是一跟他们聊起block,...
  • wojiaoweide
  • wojiaoweide
  • 2016年04月20日 13:52
  • 2779
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:block使用的一个例子
举报原因:
原因补充:

(最多只允许输入30个字)