在SwiftiOS中声明全局类实例是否常见可行

在SwiftiOS中声明全局类实例是否常见可行,第1张

概述我最近在Lynda.com上观看了一个 video tutorial,我注意到作者声明了一些包含两个类实例全局变量.我的问题的主要原因是因为我听说我们需要尽量避免使用全局变量,除非你真的需要它们.我可以看到NSUserDefaults的密钥使用全局变量,但我不确定全局实例. 以下是显示全局变量声明的代码.我只关心变量masterView和detailViewController. import 我最近在Lynda.com上观看了一个 video tutorial,我注意到作者声明了一些包含两个类实例的全局变量.我的问题的主要原因是因为我听说我们需要尽量避免使用全局变量,除非你真的需要它们.我可以看到NSUserDefaults的密钥使用全局变量,但我不确定全局实例.

以下是显示全局变量声明的代码.我只关心变量masterVIEw和detailVIEwController.

import UIKitvar objects:[String] = [String]()var currentIndex:Int = 0var masterVIEw:MasterVIEwController?var detailVIEwController:DetailVIEwController?let kNotes:String = "notes"let BLANK_NOTE:String = "(New Note)"class MasterVIEwController: UItableVIEwController {     // class code }

将您的类实例声明为全局变量是否可以?

解决方法 从技术的角度来看,在你的Swift代码中使用全局变量当然是可以的,因为你的程序不会崩溃或因此而“行为不端”.在为演示构建快速示例时,全局变量提供了缩短代码的便捷方法.

但是,使用可变全局变量使其使用有问题存在缺陷.具体来说,它们破坏了封装.查看您提供的代码,两个变量

var objects:[String] = [String]()var currentIndex:Int = 0

应隐藏在模型对象中,您可以在其上进行某种程度的控制.

如果你不小心清除它们,使用全局变量可能会产生一些意想不到的行为.例如

var masterVIEw:MasterVIEwController?var detailVIEwController:DetailVIEwController?

可能会保留对不再可见的视图控制器的引用.

总结

以上是内存溢出为你收集整理的在Swift / iOS中声明全局类实例是否常见/可行全部内容,希望文章能够帮你解决在Swift / iOS中声明全局类实例是否常见/可行所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存