Singleton类用于共享数据

时间:2014-12-17 17:08:27

标签: ios swift singleton

我是一名Android应用程序开发人员,也是swift的初学者。我正在尝试实现一个单例类,其数据成员在整个应用程序中共享(如“设置”)。 在android中完成这项工作非常简单,但我很想在swift中完成它。

以下是我试过的代码..

public class DataSet
{
    public var notificationOnOff: Bool!
    public var interval: Int!
    public var alert: String!

    init()
    {
        self.notificationOnOff = true
        self.interval = 1;
        self.alert = nil;
    }

    init (onOff: Bool) {
        self.notificationOnOff = onOff
    }

    init (time: Int) {
        self.interval = time
    }

    init (stop: String) {
        self.alert = stop
    }
}

此类实现无法保留数据。 这是正确的做法吗?

修改

例如,当我在设置视图控制器中单击切换时,我正在设置notificationOnOff ... ..

dataset.notificationOnOff = DataSet(onOff: true) // value is set and able to print it

并在另一个类中使用此值,如...

if dataset.notificationOnOff
{
 // do some stuff
}

基本上,该值仅在Setting类中持久存在,但在切换到其他类时则不存在。

1 个答案:

答案 0 :(得分:0)

解决!

我已经使用以下代码成功实现了这个..

var instance: DataSet?
class Dataset {
...
    class var sharedInstance: DataSet {
        struct Static {
            static var instance: DataSet?
            static var token: dispatch_once_t = 0
        }

        dispatch_once(&Static.token) {
            Static.instance = DataSet()
        }

        return Static.instance!
    }
}

和其他班级..

dataset = Dataset.sharedInstance;