IOS传值---属性传值、代理委托传值(delegate)传值、单例传值、block传值

单例传值

实际开发中,一般将用户的信息储存在单例之中,单例保证了只有一个事例,一旦系统调用单例方法,就可以对其中的内容进行修改,读取等等。

                                                        

  属性传值

实际开发中,经常会遇到这种情况:前一个页面push到一个新的控制器,push的过程中,需要alloc一个新的控制器实例,我们还需要将前一个页面的信息传递到新建的控制器中,例如系统的通讯录,点击某一个联系人会有部分信息显示到下一控制器。  如何解决呢,我们在新alloc的控制器中声明需要接受数据的类型的属性。直接肤质即可。

代理传值
原理是在委托者里赋值,在实现者里通过回调方法取值。


Block传值
个人感觉和代理基本相同,都是回调,通俗的说,就是可以将我的值传给我的代理,不明白可以想一下tableView的代理,创建cell的时候,需要一个indexPath参数,参数哪里来的呢?tableView给的,代理这个打工仔完成了cell的创建,tableView是老板。Block比代理容易写,因为设为属性之后就可以回调了,不用再麻烦的写协议,遵守代理,设置代理。另外block只是一个代码块,储存在栈区,效率也是很高的,系统管理嘛,速度没的说。不用就会被释放掉,这也是为什么我们需要在block的属性声明里面用copy的原因。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值