gpt4 book ai didi

ios - 我是否过度使用 NSNotifications

转载 作者:搜寻专家 更新时间:2023-10-31 08:33:48 25 4
gpt4 key购买 nike

我最近发现在我的 iOS 应用程序中制作非常自定义的布局时使用 NSNotifications 的好处。我现在使用它们来发送数据而不是使用委托(delegate)。例如,我在一个 Controller 中有一个 UIScrollView,它会改变另一个 view controller 中图片的 alpha,所以我只是在 ScrollView 滚动时发送通知,例如

func scrollViewDidScroll(scrollView: UIScrollView) {

let userInfo = ["ScrollView":scrollView]
NSNotificationCenter.defaultCenter().postNotificationName("scrollViewScrolled", object: self, userInfo: userInfo)
}

并在另一个 View Controller 中观察这一点。我知道 NSNotifications 在性能上并不昂贵,但考虑到我使用它们的程度以及我用它们发送的数据,我想知道这是否会被视为不好的做法。

最佳答案

这是一个关于应用程序设计的好问题。通知提供了一种非常松散的耦合,如果不同的组件彼此不直接相关,这会派上用场。

在我看来,基于糟糕的设计或懒惰,大多数时候使用通知是一个糟糕的选择。如果您查看您的代码,很难说出它们是如何连接的,谁负责什么等等。而且,谁对通知执行什么操作的方式非常不灵活。例如,假设您想在另一个地方重用您的一个 View Controller ——这可能不想触发这些通知。现在下一个代码味道指日可待。你开始修补通知处理或数据只是为了让它运行并对抗副作用。

这并不是说通知不好。它们有它们的用处,它可能在这里和那里都是合适的。大多数时候,从长远来看,是丑陋的快速黑客让事情变得有味道(而且很难调试)。

关于ios - 我是否过度使用 NSNotifications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com