ios – 何时在Swift中使用全局变量

ios – 何时在Swift中使用全局变量,第1张

概述我正在学习 Swift和iOS应用程序开发,我想知道在哪些情况下(如果有的话)我应该在iOS应用程序中使用全局变量和常量. Global variables are variables that are defined outside of any function, method, closure, or type context. Local variables are variables t 我正在学习 Swift和iOS应用程序开发,我想知道在哪些情况下(如果有的话)我应该在iOS应用程序中使用全局变量和常量.

Global variables are variables that are defined outsIDe of any function,method,closure,or type context. Local variables are variables that are defined within a function,or closure context.

使用全局变量通常看起来不够优雅且不可取(实际上大多数指南和教程并不推荐)并且在视图控制器之间传递数据我使用prepareForSegue(_:sender :)方法.

在某些情况下,在我看来,使用全局变量会使代码更简单,更快.

例如,Apple建议为每种格式模式存储NSDateFormatter或NSNumberFormatter,而不是每次需要时重新创建或更改一个格式模式.在我正在开发学习语言的应用程序中,大多数视图控制器使用NSDateFormatter和NSNumberFormatter,并为每个视图控制器创建一个新的可能不是一个好主意.我可以通过prepareForSegue传递它,但我认为在这种情况下,最好使用一个全局var来保存每个视图控制器都可以使用的格式化程序实例.

那么在任何情况下我都应该使用全局变量吗?

解决方法 每当您发现自己使用全局时,您需要退后一步,仔细思考数据是什么以及它与应用程序其余部分的关系.很容易说你需要避免使用全局变量,困难的部分是知道场景的最佳选择,即使是资深的Cocoa开发人员也不同意.

在单例模式中,您创建一个类并将其全局存储在其中.这通常作为解决方案提供,因为它是最容易开处方和遵循的,但很多时候我想知道它是否是一个解决方案.在全球范围内包装课程并不会给你任何额外的保护.毕竟,班级本身现在是一个全球性的实体.我喜欢将Singleton模式看作是一种组织,分类和包含全局变量的方式,而不是避免使用全局变量.

应该为您的应用程序的帐篷保留单身人员,例如数据库或远程后端连接处理程序.每个Cocoa / Cocoatouch应用程序都带有一个内置的Singleton,AppDelegate,在很多情况下,各种各样的东西可以去那里.

在许多情况下,“正确”的解决方案是传递数据,例如在prepareForSegue:类中的视图控制器之间传递数据.这在Andy Matuschak辉煌的2014年WWDC会议中得到了很好的描述.我同意你的看法,这不适用于你的例子.在您的示例中,您不是在两个视图之间处理相关数据,而是尝试共享一个公共工具来保存资源.

对于您的具体示例,我将使用Singleton或类似模式.对我来说有意义的一种方法是使用扩展将它们存储在相应的类中.例如:

extension NSDateFormatter {  static let newDateFormatter = NSDateFormatter()}// use it in your app like this:NSDateFormatter.newDateFormatter

像评论者说的那样,这是一个意见问题.还要记住,斯威夫特仍然很年轻,虽然它必然会从可可中大量借用,但成语仍在不断发展.

总结

以上是内存溢出为你收集整理的ios – 何时在Swift中使用全局变量全部内容,希望文章能够帮你解决ios – 何时在Swift中使用全局变量所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1058840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存