如何在 Swift 2 中为 Dictionary 创建合适的单例
How to create a proper singleton for Dictionary in Swift 2
我有以下代码
class Test: UIViewController {
var imagesOfChef = [Int : chefImages]()
struct chefImages {
var objidChef: String!
var imageChef: UIImage!
}
}
用户一打开应用程序,我就填这本词典。
但我希望它也可以在其他视图中使用(swift 文件)
让我们在这个class
class Test2: UIViewController{
}
我如何为该词典创建单例以便其他视图可以使用它?
感谢您的宝贵时间!
您可以使用静态 属性:
static var imagesOfChef = [Int : chefImages]()
然后你使用:
Test.imagesOfChef
但我建议尽可能避免使用静态方法,如果 Test 有 Test2,您可以使用 prepare segue 或从外部分配 属性。
StackOverlow 上有很多关于如何创建单例的示例。
无论如何,你的代码应该是这样的
struct Chef {
let id: String
let image: UIImage
}
final class Singleton {
static let sharedInstance = Singleton()
private init() { }
var dict = [Int: Chef]()
}
现在您可以在应用的任何来源中使用它
Singleton.sharedInstance.dict[1] = Chef(id: "1", image: UIImage())
我有以下代码
class Test: UIViewController {
var imagesOfChef = [Int : chefImages]()
struct chefImages {
var objidChef: String!
var imageChef: UIImage!
}
}
用户一打开应用程序,我就填这本词典。 但我希望它也可以在其他视图中使用(swift 文件)
让我们在这个class
class Test2: UIViewController{
}
我如何为该词典创建单例以便其他视图可以使用它?
感谢您的宝贵时间!
您可以使用静态 属性:
static var imagesOfChef = [Int : chefImages]()
然后你使用:
Test.imagesOfChef
但我建议尽可能避免使用静态方法,如果 Test 有 Test2,您可以使用 prepare segue 或从外部分配 属性。
StackOverlow 上有很多关于如何创建单例的示例。
无论如何,你的代码应该是这样的
struct Chef {
let id: String
let image: UIImage
}
final class Singleton {
static let sharedInstance = Singleton()
private init() { }
var dict = [Int: Chef]()
}
现在您可以在应用的任何来源中使用它
Singleton.sharedInstance.dict[1] = Chef(id: "1", image: UIImage())