如何在swift中创建全局对象?

时间:2015-06-30 18:22:13

标签: swift singleton

我认为我之前的问题太模糊了。让我再尝试一次。

我试图通过创建单身来保存用户信息。 经过一番研究,这就是我的理解。

     Class UserInfo {
             var userFirstName: String? 
             var userLastName: String?
             /*I'll add all other variables here*/

    }


let sharedInfo = UserInfo()

我在正确的道路上吗?

1 个答案:

答案 0 :(得分:1)

编辑:对于Swift 1.2及更高版本(感谢Will M)

class UserInfo  {
   static let sharedUserInfo = UserInfo()
   var firstName: String?
   var lastName: String?
}

对于早于1.2的Swift

有些事情:

class UserInfo
{
    // Singleton Setup

    private static var info: UserInfo?

    class func sharedUserInfo() -> UserInfo
    {
        if self.info == nil
        {
            self.info = UserInfo()
        }

        return self.info!
    }

    // Class properties

    var firstName: String?
    var lastName: String?
}

let user = UserInfo.sharedUserInfo()
user.firstName = "Fred"
user.lastName = "Smith"

我还建议确保一个单身人士真的是你想要的,因为根据你的使用方式,你可能会遇到一些带有线程的竞争条件。