我有一种情况,我可能需要在一个类
中声明两个单身人士class ImageManager {
static var imageCache = NSCache()
static var imageManager = ImageManager()
(...)
}
这有危险吗?
答案 0 :(得分:4)
通常,单个类中的多个静态变量没有问题。其中只有一个应该被称为 singleton - 即imageManager
,因为它是您设计中唯一的实例。
但是,如果ImageManager
需要独占使用NSCache
,最好将imageCache
设为ImageManager
的实例属性。如果其他静态方法需要访问缓存,他们总是可以通过imageManager.imageCache
获得对它的访问权。
答案 1 :(得分:0)
没有问题,但不推荐,你可以像这样编码
class ImageManager {
var imageCache = NSCache()
static var imageManager = ImageManager()
}
并像这样获取imageCache
ImageManage.imageManager.imageCache