 
         dispatch_async(_queue, block)
     }
-
 }
 
 // MARK: ImageLoaderCacheProtocol

        }

        var path: String {
            let cachePath = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)[0] as String
            let imagePath = "swift.imageloader.diskcached"

            return cachePath.stringByAppendingPathComponent(imagePath)
        }
    }
    let directory: Directory = Directory()

    private let _queue = dispatch_queue_create("swift.imageloader.queues.diskcached", DISPATCH_QUEUE_SERIAL)

}

// MARK: accessor

            "!*'\"();:@&=+$,/?%#[]% ",
            CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding))
        return str
    }
}

class Diskcached: NSObject {

    private var images = [NSURL: UIImage]()

    class Directory {
        init() {
            createDirectory()
        }

