如何在Swift中使用单例进行数据共享?

时间:2016-11-05 16:53:17

标签: swift singleton

我目前正在开发一款需要在多个视图之间共享信息的应用。为简单起见,我更喜欢使用单身人士。

我的问题是......

  1. 应该在哪里定义和初始化单例类,以便所有视图控制器和所有其他类文件都可以使用?
  2. 其他课程如何引用单身人士?是否需要特定类中的任何导入语句或特殊初始化?
  3. 我只想提一下,我对@ http://krakendev.io/blog/the-right-way-to-write-a-singleton

    中找到的单行单身人士感兴趣

    这种方法更可取。

    BTW:我在Xcode 6.2中使用Swift进行开发

    感谢。

1 个答案:

答案 0 :(得分:0)

如果您定义单身,它可以在目标中的任何位置使用。所以把它放在你想要的任何地方,通常是它自己的.swift文件。要使用它,您只需执行以下操作,不需要特殊的import语句:

let kraken = TheOneAndOnlyKraken.sharedInstance
顺便说一下,如果您使用的是Xcode 6.2,它早于Xcode 6.3引入的Swift 1.2,那么您只能参考该文章中一些不太优雅的struct解决方案。

为了记录,使用单身人士访问整个应用程序中的模型数据是令人陶醉的简单,但正如rmaddy所建议的那样,这种做法通常是不鼓励的。随着应用程序变得越来越复杂,它开始引入微妙的维护问题。采用这不是一个好习惯。诚然,这是一个争论的主题,所以我会转而推荐你What is so bad about singletons?,而不是在这里再次开始对话。