iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 为什么要为app委托使用属性?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在审核一些在许多视图控制器中具有appDelegate属性代码.

@property (nonatomic,unsafe_unretained) TheAppDelegate *appDelegate;

抛开这种耦合的设计含义,除了方便之外,appDelegate属性与检索应用委托相比还有什么好处:

TheAppDelegate *appDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate someMethod];

解决方法

我有时也这样做,即.声明可以使用单例访问方法获取的依赖项的属性

@class Foo : NSObject
@property(strong) NsnotificationCenter *notificationCenter;
@end

@implementation Foo

- (id) init
{
    self = [super init];
    [self setNotificationCenter:[NsnotificationCenter defaultCenter]];
    return self;
}

@end

优点是您可以在依赖项上获得更松散的耦合.例如,您可以轻松提供自己的模拟实例.在某些情况下,它还会缩短代码,编写_notificationCenter而不是[NsnotificationCenter defaultCenter].

我能想到的第三个原因是声明属性使得依赖项显式化:通过查看公共API,您知道对象的状态或行为取决于应用程序委托.在类实现中使用单例完全隐藏了这一事实.

但是,如果您的应用程序中有许多控制器依赖于应用程序委托,则可能只是设计缺陷.

大佬总结

以上是大佬教程为你收集整理的ios – 为什么要为app委托使用属性?全部内容,希望文章能够帮你解决ios – 为什么要为app委托使用属性?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。