如何在 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"
我还建议确保单例确实是您想要的,因为根据您使用它的方式,您可能 运行 进入某些线程竞争条件。
我觉得我之前的问题太笼统了。让我再试一次。
我正在尝试通过创建单例来保存用户信息。 经过一番研究,这就是我的理解。
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"
我还建议确保单例确实是您想要的,因为根据您使用它的方式,您可能 运行 进入某些线程竞争条件。