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

How do I create global object in swift?

我觉得我之前的问题太笼统了。让我再试一次。

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

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

    }


let sharedInfo = UserInfo()

我走的路对吗?

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

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

对于 Swift 早于 1.2

大致如下:

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"

我还建议确保单例确实是您想要的,因为根据您使用它的方式,您可能 运行 进入某些线程竞争条件。