相关疑难解决方法(0)

如何在swift中创建Singleton对象

我正在以快速有效的方式学习Singleton模式来创建Singleton类,并找到了如下创建的最佳方法.

class SingletonClass{
    static let sharedInstance = SingletonClass()
}
Run Code Online (Sandbox Code Playgroud)

由于我使用了该let语句,因此它是只读属性,并且必须是线程安全的,所以不需要dispatch_once(),因为目标C.And static 用于使sharedInstance变量作为class变量我猜.

但是,这如何保证整个应用程序中只创建了一个实例?我缺少一件小事吗?

singleton ios swift

19
推荐指数
3
解决办法
2万
查看次数

任何不使用的理由在Swift中使用单例"变量"?

对于2015年9月,这里正是你如何在Swift中创建一个单例:

public class Model
    {
    static let shared = Model()
    // ( for ocd friends ... private init() {} )

    func test()->Double
        {
        return 3.33
        }
    }
Run Code Online (Sandbox Code Playgroud)

其他地方......

// file ViewController.swift, say
import UIKit
class ViewController:UIViewController
    {
    override func viewDidLoad()
        {
        super.viewDidLoad()
        print("view controller loaded!")
        print("singleton test! \( Model.shared.test() )")
        }
    }
Run Code Online (Sandbox Code Playgroud)

没问题.

然而.我加上这个小东西......

public let model = Model.shared
public class Model
    {
    static let shared = Model()

    func test()->Double
        {
        return 3.33
        }
    }
Run Code Online (Sandbox Code Playgroud)

那么,你可以简单地在项目范围内进行以下操作:

class ViewController:UIViewController
    {
    override …
Run Code Online (Sandbox Code Playgroud)

singleton swift swift2

10
推荐指数
1
解决办法
4279
查看次数

Swift中的单例用法

我仍然对使用Swift感到困惑,并且希望有人可以帮助澄清我何时以及为什么要他们.根据我对Singleton的理解,它们是单个类实体,这意味着如果我有A类并且我在B类中创建了A类的共享实例,它只是对B中A类的引用,所以如果我改变或修改对象那么引用B类中的A类,原始对象Class不受影响,只有B类中的对象是.

如果我想要A类和B类,并且在B类中创建对A类的直接引用,那么我所做的任何更改都会在A类中发生.直接修改该类,而不是引用该类的对象的实例.

singleton swift

2
推荐指数
1
解决办法
2058
查看次数

标签 统计

singleton ×3

swift ×3

ios ×1

swift2 ×1