当前位置:  开发笔记 > IOS > 正文

在Swift/iOS中声明全局类实例是否常见/可行

如何解决《在Swift/iOS中声明全局类实例是否常见/可行》经验,为你挑选了1个好方法。

我最近在Lynda.com 观看了一个视频教程,我注意到作者声明了一些包含两个类实例的全局变量.我的问题的主要原因是因为我听说我们需要尽量避免使用全局变量,除非你真的需要它们.我可以看到使用全局变量,NSUserDefaults' Keys但我不确定全局实例.

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

import UIKit

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

var masterView:MasterViewController?
var detailViewController:DetailViewController?

let kNotes:String = "notes"
let BLANK_NOTE:String = "(New Note)"

class MasterViewController: UITableViewController {

     // class code 

}

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



1> dasblinkenli..:

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

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

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

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

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

var masterView:MasterViewController?
var detailViewController:DetailViewController?

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

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有