После документации на https://github.com/zalando/MapleBacon, я создал следующий, который работал в Swift 2.3:MapleBacon.DiskStorage больше не предоставляет доступ к изображениям после обновления 3.0.0: почему?
import MapleBacon
fileprivate let
_manager: ImageManager
, _storage: DiskStorage
, _stopwatch: Stopwatch
, _urlsLoading: [ String ]
required init()
{
_manager = ImageManager.sharedManager
_storage = DiskStorage(name: "MyStorageName")
_stopwatch = Stopwatch()
_urlsLoading = []
}
func loadImageBy (Url url: String)
{
guard let nsurl = URL(string: url) else { return }
_urlsLoading.append(url)
_manager.downloadImage(
atUrl: nsurl
, cacheScaled: true
, imageView: nil
, storage: _storage
, completion:
{
[ unowned self ] (image, error) -> Void in
self._stopwatch.startWith(
Delay: 0.02
, ForListener: self._onStopwatchComplete
)
}
)
}
Я обнаружил, что, используя свой собственный Stopwatch
компонент, чтобы заставить задержку 0,02 включен MapleBacon.DiskStorage
, чтобы изображения доступны через его image(forKey:)
метод:
fileprivate lazy var _onStopwatchComplete: (String, Any?) -> Void =
{
[ unowned self ] (key: String, data: Any?) -> Void in
var url: String, imageCount = 0
// loop through urls of images being loaded
for _ in 0..<self._urlsLoading.count
{
url = self._urlsLoading[ imageCount ]
// image found
if let img = self._storage.image(forKey: url)
{
print(img)
// remove from list of urls of images being loaded and...
self._urlsLoading.remove(at: imageCount)
}
// image not found: continue waiting
else
{
imageCount += 1
}
}
self._stopwatch.stop()
}
с Swift версии 3.0 MapleBacon хотя, даже задержка 5 секунд, не производя ссылку на изображение в _storage
, и так же, как Swift 2.3 версии, самку s не имеет его в completion: (image, error) ->
.
С 3.0.0
версии MapleBacon
, что нужно сделать, чтобы успешно сохранить и получить изображения с DiskManager
, пожалуйста?
спасибо [для чтения, по крайней мере].
PS: У меня нет нужного показателя для создания тега MapleBacon
. Если кто-то сделает и может, это было бы здорово, спасибо.