block 高级

//从后往前传值 声明block属性

//copy 目的是 将栈区的block拷贝一份到堆区

@property(nonatomic,copy)void (^sendValueBlock)(id);

//1,

LoginViewController *loginVC = [[LoginViewController alloc] init];

//2,给需要传值的block的值赋值 (实现)

//如果想要再block内部使用一个对象,并不想被block持有

//弱引用 。在内部使用需在外部创建一个同类型的对象

__block MineTableViewController *weakSelf = self;

loginVC.sendValueBlock = ^(id obj){

//将传递过来的值设置为title

//不能在block内写self,也不能写self的属性。非要使用要使用__block 修饰

weakSelf.title = obj;

};

NSLog(@"%lu",self.retainCount);

//

[self.navigationController  pushViewController:loginVC animated:YES];

[loginVC release];

}

时间: 2024-11-02 23:11:45

block 高级的相关文章

block高级功能

/* -*- c++ -*- */ /* * Copyright 2004,2007,2009,2010,2013 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License a

iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返回第一个界面的时候,当第二个视图将要消失的时候,就将第二个界面上TextFiled中的文字传给第一个界面,并且显

Block高级使用 传值

使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: //Block直接或者间接使用了父对象,就会造成循环引用   __block //Block声明是用block 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返

转:Microsoft Enterprise Library 5.0 系列教程(一) Caching Application Block (高级)

http://www.360doc.com/content/13/0918/22/15643_315482318.shtml http://www.360doc.com/content/13/0918/22/15643_315483614.shtml http://www.cnblogs.com/huangcong/archive/2010/05/28/1745909.html http://www.cnblogs.com/happyhippy/archive/2010/08/15/180028

Block用法解析

Block代码块是对C做出的一个补充,初次体验代码块,无比的不适应.古怪的语法确实让人不易入门甚至精通.但若能够深入精通Block的使用,会给代码带来层次上的提升.Block就是一段在将来被执行的代码 定义块语法 ^[块返回值类型](形参类型1 形参1,形参类型2 形参2,...) { //块执行任务 } 需要注意的是定义块必须以^开头 定义块变量 块返回值类型 (^块变量名)(形参类型1,形参类型2,...); 简单实例 //定义块变量 void(^NSLogStr)(); //通过块变量调用

Enterprise Library 5.0 系列教程

1. Microsoft Enterprise Library 5.0 系列教程(一) Caching Application Block (初级) 2. Microsoft Enterprise Library 5.0 系列教程(一) Caching Application Block (高级) 3. Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级) 4. Microsoft Enterpr

iOS开发——动画编程的几种方法

动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKeyframeAnimation>,NSTimer 这里我就总结了一下这五种方法,其实iOS开发中动画的编程都会在这里面变化,所以只要弄懂了这些动画编程就不难了. 一:UIView动画 一般方式 [UIView beginAnimations:@"ddd" context:nil];//设置动画[

iOS开发之动画编程的几种方法

iOS开发之动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKeyframeAnimation>,NSTimer 这里我就总结了一下这五种方法,其实iOS开发中动画的编程都会在这里面变化,所以只要弄懂了这些动画编程就不难了. 一:UIView动画 一般方式 [UIView beginAnimations:@"ddd" context:nil];/

OC高级编程——深入block,如何捕获变量,如何存储在堆上

首先先看几道block相关的题目 这是一篇比较长的博文,前部分是block的测试题目,中间是block的语法.特性,block讲解block内部实现和block存储位置,请读者耐心阅读.具备block基础的同学,直接调转到block的实现 下面列出了五道题,看看能否答对两三个.主要涉及block栈上.还是堆上.怎么捕获变量.答案在博文最后一行 //-----------第一道题:-------------- void exampleA() { char a = 'A'; ^{ printf("%