在Swift中声明全局变量的最佳方法是什么?我正在使用Singletons将对象保存在内存中。此外,我可以从任何地方访问它们。
但是由于数组不是快速线程安全的,因此这种模式还能解决并发性吗?是否有更好的存储方式,例如全球资源中的网络资源?
例如。
class Repository {
static let sharedInstance = Repository()
var objects:[String] = []
}
最佳答案
跨线程读取数组是安全的。不是写作。有关如何以线程安全的方式访问数组的信息,请参见this question。
您实现共享实例的方法过于冗长,将在Swift 3中弃用。请改用惰性初始化:
class Repository {
static var sharedInstance = { Void -> Repository in
let tmp = Repository()
tmp.objects = ["Hello", "World"]
return tmp
}()
var objects:[String] = []
}
关于ios - iOS:处理全局属性的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38676812/