IOS 属性传值问题
各位大神好,我刚刚接手了一个项目,正在理解其中的代码,有一处地方我十分不解。一个页面的属性既没有被初始化有没有被赋值,当我把断点打在viewdidload方法开始处时来看...
各位大神好,我刚刚接手了一个项目,正在理解其中的代码,有一处地方我十分不解。
一个页面的属性既没有被初始化有没有被赋值,当我把断点打在viewdidload方法开始处时来看这个属性的值,我发现它居然是有值的,而且这个值是正常的。
我搜索整个工程发现也没有发现通过push传值的影子,回调的话我也没看出来,因为就这么几段代码压根没有block。
请问这是为啥?
请大神们不吝赐教。
谢谢啦! 展开
一个页面的属性既没有被初始化有没有被赋值,当我把断点打在viewdidload方法开始处时来看这个属性的值,我发现它居然是有值的,而且这个值是正常的。
我搜索整个工程发现也没有发现通过push传值的影子,回调的话我也没看出来,因为就这么几段代码压根没有block。
请问这是为啥?
请大神们不吝赐教。
谢谢啦! 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
1个回答
2015-10-13
展开全部
1、属性传值 前向后传值。
2、协议传值
3、Block传值 代替协议代理传值,主要时间点问题。
4、单利传值 数据共享。
5、通知传值
通知中心
NSNotificationCenter提供了一种更加解耦的方式。最典型的应用就是任何对象对可以发送通知到中心,同时任何对象可以监听中心的通知。
发送通知的代码如下:
[[NSNotificationCenterdefaultCenter] postNotificationName:@”myNotificationName” object:broadcasterObject];
注册接收通知的代码如下:
[[NSNotificationCenterdefaultCenter] addObserver:listenerObject selector:@selector(receivingMethodOnListener:) name:@”myNotificationName” object:nil];
注册通知的时候可以指定一个具体的广播者对象,但这不是必须的。你可能注意到了defaultCenter。实际上这是你在应用中会使用到的唯一的中心。通知会向整个应用开放,因此只有一个中心。
同时还有一个NSDistributedNotificationCenter。这是用来应用间通信的。在整个计算机上只有一个该类型的中心。
优点: 通知的发送者和接受者都不需要知道对方。可以指定接收通知的具体方法。通知名可以是任何字符串。
缺点: 较键值观察需要多点代码。在删掉前必须移除监听者。不能传大量数值,只能让谁去做什么事。
2、协议传值
3、Block传值 代替协议代理传值,主要时间点问题。
4、单利传值 数据共享。
5、通知传值
通知中心
NSNotificationCenter提供了一种更加解耦的方式。最典型的应用就是任何对象对可以发送通知到中心,同时任何对象可以监听中心的通知。
发送通知的代码如下:
[[NSNotificationCenterdefaultCenter] postNotificationName:@”myNotificationName” object:broadcasterObject];
注册接收通知的代码如下:
[[NSNotificationCenterdefaultCenter] addObserver:listenerObject selector:@selector(receivingMethodOnListener:) name:@”myNotificationName” object:nil];
注册通知的时候可以指定一个具体的广播者对象,但这不是必须的。你可能注意到了defaultCenter。实际上这是你在应用中会使用到的唯一的中心。通知会向整个应用开放,因此只有一个中心。
同时还有一个NSDistributedNotificationCenter。这是用来应用间通信的。在整个计算机上只有一个该类型的中心。
优点: 通知的发送者和接受者都不需要知道对方。可以指定接收通知的具体方法。通知名可以是任何字符串。
缺点: 较键值观察需要多点代码。在删掉前必须移除监听者。不能传大量数值,只能让谁去做什么事。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询