IOS 七种传值方法

来源:互联网 发布:人工智能程序发展 编辑:程序博客网 时间:2024/04/30 06:00

七种传值方法:

1.属性传值

属性传值多用于从上级页面传到下级页面.关键点:谁是数据的接收方,谁创建属性.

2.代理传值

代理传值多用于从后一个页面往前一个页面传值.关键点:谁是数据提供方,谁创建代理.

注意:代理属性的声明要用assign,如果用retain的话,会造成内存问题(用retain时会使服从协议的页面引用计数+1,当服从协议页面的前一个页面空间回收时,服从协议的页面的空间不能被回收掉,当然提供协议页面也不能被回收掉,这样就造成了空间堆积,而且一般的检测设备检测不出来这种问题).

3.单例传值

单例传值不受视图层级的限制,随时存储,随时获取.关键点:单例里面不能存放过大的数据,因为单例的空间不能不回收.

4.extern传值

extern传值引用在其他类里定义的变量,关键点:全局变量不能不能大量使用,且不易管理.

5.NSUserDefaults传值

NSUserDefaults是系统为我们提供的一种最简单的持久化方式,这个类有单例方法.

6.block传值

block传值和代理传值一样,也是回调传值

7.通知传值

在需要传值的类里注册通知即可,可以一传多,注意在dealloc中销毁通知.

0 0
原创粉丝点击