Objective c &引用;代表或通知”;判定代码的性能?
在我的应用程序中,我必须在tableview中将图像文件显示为列表,以完整大小和多个缩略图的形式显示它们。因此,基本上我开发了三个独立的类来处理这三个视图。现在要执行任何文件操作,我可以想到两种方法:Objective c &引用;代表或通知”;判定代码的性能?,objective-c,memory-management,nsnotificationcenter,performance-testing,nsnotifications,Objective C,Memory Management,Nsnotificationcenter,Performance Testing,Nsnotifications,在我的应用程序中,我必须在tableview中将图像文件显示为列表,以完整大小和多个缩略图的形式显示它们。因此,基本上我开发了三个独立的类来处理这三个视图。现在要执行任何文件操作,我可以想到两种方法: 为所有这些类创建appdelegate对象,并相应地处理它们。当在一个类中对照片文件执行一个操作时,将使用NSNotification通知所有其他类,并将obeserver保留为Appdelegate对象 在需要时为这些类创建本地对象,并通过调用相关方法为从一个类到另一个类执行文件操作分配委托 但
但是,我无法判断哪种方法在内存使用和性能方面更好?提前感谢。与直接消息传递使用一对一关系是更简单的关系和通信/消息传递方式。支持代理回调--第2个 使这种设计双向也很容易——如果视图离开屏幕,您可以执行取消。如果负载发生故障,则更容易通知控制器
NSNotification
s相当重。没有必要
在单例(应用程序委托)中存储大量内容可能会导致几个不必要的保留对象。如果您的程序是并发的,那么这会增加更多的复杂性。不需要这种复杂性,也不需要引入可变的全局状态,也没有理由让对象拥有更大的访问范围和生存期
除此之外,您还可以针对特定需求进行优化,但目前我看不到任何优化。这在很大程度上取决于代码和您如何构建应用程序。我通常在以下情况下使用代理:
- 委托对象存在于需要它的主对象之前和之后的位置。换句话说,主对象不需要担心其委托的生命周期李>
- 其中,对象与其委托对象之间的关系是严格的一对一关系。换句话说,只有一个委托对象需要与主对象交互。我见过代理被交换的情况,我不推荐这样的代码
- 其中主对象需要来自委托的信息李>
- 多个对象需要知道另一个类中发生的事情
- 主类不需要与其他类交互,甚至不需要知道它们的存在