All right, here is the outcome: https://github.com/salutis/KeyedCache/blob/master/KeyedCache.swift
Thanks Erica and Donnacha for examples and inspiration! R+ > On 28 Dec 2015, at 19:36, Rudolf Adamkovič via swift-users > <swift-users@swift.org> wrote: > > Hi there! > > In my app, I have a very simple class that serves as a key-value cache. The > whole thing is basically a lazily populated [String: AVAudioPCMBuffer] > dictionary with a String -> AVAudioPCMBuffer function that generates values > as needed: > > final class PlayerAudioCache { > > // MARK: Retrieving audio buffers > > func audioBufferForAssetWithName(name: String) -> AVAudioPCMBuffer? { > addAudioBufferForAssetWithNameIfNeeded(name) > return cachedAudioBuffers[name] > } > > // MARK: Adding audio buffers > > func addAudioBufferForAssetWithNameIfNeeded(name: String) { > guard cachedAudioBuffers[name] == nil else { return } > addAudioBufferForAssetWithName(name) > } > > private func addAudioBufferForAssetWithName(name: String) { > guard let dataAsset = NSDataAsset(name: name) else { fatalError() } > cachedAudioBuffers[name] = dataAsset.map { URL -> AVAudioPCMBuffer in > AVAudioPCMBuffer(contentsOfURL: URL)! > } > } > > private var cachedAudioBuffers: [String: AVAudioPCMBuffer] = [:] > > } > > I feel like there is a pre-made type in Swift’s standard library for what I’m > doing here. Am I right? > > Ideas? Pointers? > > Thank you! > > R+ > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users