2016-10-12 3 views
2

私は、追加のフレームワークのためにsingletonを使用するコンセプトに100%慣れていません。たとえば、次の2つの関数呼び出しのうち、SDWebImageを使用する必要がある場合の相違点は何ですか。あなたはいつもSDWebImageのためのシングルトンの使用

SDWebImageManager.sharedManager().saveImageToCache(myImg, forURL: myUrl) 
    <=> let sharedInstance = SDWebImageManager.sharedManager(); 
      sharedInstance.saveImageToCache(myImg, forURL: myUrl) 
  • を使用する必要があります

理由:: SDWebImageManager.sharedManagerは()意味:いくつかの小さな例が

SDWebImageManager().saveImageToCache(myImg, forURL: myUrl) 
SDWebImageManager.sharedManager().saveImageToCache(myImg, forURL: myUrl) 
+0

おそらくUIImageの拡張を行う方がいいでしょうか?したがって、パラメータとして渡された特定のURLをキャッシュに保存するメソッドを作成することができます –

答えて

2
  • 私はどの使うべき素晴らしいことですClass SDWebImageManagersharedManagerメソッドを呼び出して、クラスのインスタンスを取得します。、

saveImageToCache(...)を呼び出して、そのインスタンスのメソッドsaveImageToCacheを呼び出します。

+0

私はいつもsharedManagerを使用する必要があるのか​​不明確です。私は1つのインスタンスだけを使用することが理にかなっていると思います。私がsharedManagerの方法を使用しなかった場合、トラックのバグに遭遇するでしょうか? (私は間違った場合に何がうまくいかないかを知って学ぶのが好きです) – user172902

+0

最初に:saveImageToCacheはインスタンスメソッドです。したがって、同じ結果が必要な場合は、そのメソッドを同じインスタンス(つまり、sharedManagerが必要な理由)で呼び出す必要があります。 第2回:人々の助けがあなたの助けになった場合、upvoteボタンを使うことを学ぶ –

2
  1. から呼び出すSDWebImageManager毎回の新しいインスタンスを作成します。
  2. SDWebImageManagerの同じインスタンスを使用します。これは作成され、セットアップされたもので、いつでも使用できる状態になっています。
+0

Dinhの答えを見ると、私はいつもsharedManagerの権利を使うべきですか?私が「間違った」方法をとった場合、SDWebImageManagerを作成するときに何が問題になるのですか? – user172902

+0

ここで何も間違っています。それはあなたとあなたの目的にかかっています。 –

関連する問題