Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SDWebImage的单例使用_Ios_Swift_Sdwebimage - Fatal编程技术网

Ios SDWebImage的单例使用

Ios SDWebImage的单例使用,ios,swift,sdwebimage,Ios,Swift,Sdwebimage,我对使用singleton作为附加框架的概念不是100%熟悉。例如,当我应该使用哪个函数时,SDWebImage的以下两个函数调用之间有什么区别。一些小例子会很好 SDWebImageManager().saveImageToCache(myImg, forURL: myUrl) SDWebImageManager.sharedManager().saveImageToCache(myImg, forURL: myUrl) 我应该在什么时候使用它: 你应该始终使用 SDWebImageM

我对使用
singleton
作为附加框架的概念不是100%熟悉。例如,当我应该使用哪个函数时,
SDWebImage
的以下两个函数调用之间有什么区别。一些小例子会很好

SDWebImageManager().saveImageToCache(myImg, forURL: myUrl)
SDWebImageManager.sharedManager().saveImageToCache(myImg, forURL: myUrl)
  • 我应该在什么时候使用它:
你应该始终使用

 SDWebImageManager.sharedManager().saveImageToCache(myImg, forURL: myUrl)
   <=> let sharedInstance = SDWebImageManager.sharedManager();
           sharedInstance.saveImageToCache(myImg, forURL: myUrl)
SDWebImageManager.sharedManager().saveImageToCache(myImg,forURL:myUrl)
让sharedInstance=SDWebImageManager.sharedManager();
saveImageToCache(myImg,forURL:myUrl)
  • 原因: SDWebImageManager.sharedManager()的意思是:调用类
    SDWebImageManager
    的方法
    sharedManager
    ,以获取类
    SDWebImageManager
    的实例
然后调用
saveImageToCache(…)
来调用该实例的方法
saveImageToCache

  • 样本来自
  • 每次调用时创建
    SDWebImageManager
    的新实例
  • 使用相同的
    SDWebImageManager
    ——该实例只创建和设置了一次,并且始终可以使用

  • 也许对UIImage进行扩展会更好不是吗?因此,您可以创建一个方法,将图像保存在缓存中,并将特定url作为参数传递查看Dinh的答案,我应该始终使用sharedManager,对吗?每次创建SDWebImageManager都有什么问题?如果我以“错误”的方式操作,这里没有什么问题,这取决于您和您的目的。我有点不清楚为什么我应该始终使用sharedManager。我想只使用一个实例是有道理的。如果我没有使用sharedManager的方式,我会遇到一些错误吗?(我想通过了解错误情况下会出现什么问题来学习)首先:saveImageToCache是一种实例方法。所以,如果您需要相同的结果,那么应该使用相同的实例调用该方法(这就是为什么我们需要sharedManager)。第二:如果有人帮助你,学会使用你的向上投票按钮,哈哈