5种传值方式
2016-01-11 23:01
99 查看
//1.传值方式 //1.属性传值: 从前一个页面向后一个页面传值 //a.在后一个页面, 根据传值的类型和个数, 写属性 //b.在前一个页面, 为属性赋值 //c.在后一个页面, 使用值 //2.代理传值: 从后一个页面向前一个页面传值 //后一个页面(找代理) //a. 制订协议 //b. 写delegate 属性 //c. 在合适的时候, 让代理协议执行方法 //3.前一个页面(成为代理) //a.建立关系 //b.遵守协议 //c.实现协议方法 //4.单例传值: 多个页面间的传递 //a.创建单例类 //b. 根据参数的个数和类型, 在单例中写属性 //c. 内容存入单例 //d. 从单例中取内容 //缺点: //a.创建对象时, 必须使用单例方法, 不能使用 alloc + init //b.单例到程序结束才释放, 内部不能放过大的数据.(应用从头到尾都要用, 就设置为单例) //5.block 传值: 从后一个页面到前一个页面(只要能写成代理传值,都可以写成 block 传值)(一般更简单) //后一个页面 //a.对 block 类型, 重命名 //b.写 block 属性 //c.在合适的 时候, 调用 block //前一个页面 //a.为 block 赋值 //求两个整数之和的 block //前面两个值表示, 参数类型; 后面表示参数 // int(^sum)(int, int) = ^(int a, int b) { // return a + b; // }; // NSLog(@"%d", sum(2,3)); //重命名,参数类型重命名 typedef int(^Sum)(int, int); Sum sum = ^(int a, int b) { return a + b; }; sum(2,5);//调用使用 Box *box = [Box defaultBox]; NSLog(@"%@", box); Box *box1 = [Box defaultBox]; NSLog(@"%@", box1); // Box *box3 = [[Box alloc] init];//错误的 //比如: // [UIScreen mainScreen] // [UIApplication sharedApplication] //UIViewController的生命周期(一个对象从创建到消亡的过程) //1.alloc + init //2.loadView //3.viewDidLoad //4.viewWillAppear //5.viewDidAppear //6.view WillDisapper //7.viewDidDisapper //8.dealloc //注:1238, 只会执行一次; 4567:执行多次 return YES; } 多练!!!!
相关文章推荐
- Web Essentials之Bundling
- 执行idea时出现"无效的源发行版"
- 第四十课 问题求解方法——穷举 【项目1-9】
- Mysql几种索引类型的区别及适用情况
- 文件子系统的调优
- 14.6 Spring MVC 测试框架(翻译)
- 利用KeyChain共享数据(唯一标示)
- 一起talk C栗子吧(第九十七回:C语言实例--使用消息队列进行进程间通信一)
- oracle数据库不支持mysql中limit功能
- Nginx详解-服务器集群
- 配置本地Yum源
- BZOJ 3110 ZJOI 2013 K大值查询 线段树套线段树
- 计算机组件及操作系统基础知识
- query 中 (function( window, undefined ) {})(window)写法详解(转)
- POJ【1502】MPI Maelstrom
- Lessons learned developing a practical large scale machine learning system
- 招收实习生是为了什么?
- TCP/IP子系统的调优
- 原型而上之成果模型之垂直社交
- 第四十三课 从文本文件中读入数据 【项目1-4】