 
 typealias ACMemoryCacheBlock        = (cache: ACMemoryCache) -> Void
 typealias ACMemoryCacheObjectBlock  = (cache: ACMemoryCache, key: String, object: AnyObject?) -> Void
+
+let ACMemoryCacheEmptyBlock       : ACMemoryCacheBlock        = { _     in return }
+let ACMemoryCacheObjectEmptyBlock : ACMemoryCacheObjectBlock  = { _,_,_ in return }
 
 let ACMemoryCachePrefix = "io.yanke.acmemorycache"
 

  init() {
    let queueName = "\(ACMemoryCachePrefix).\(CACurrentMediaTime())"
    self.queue = dispatch_queue_create(queueName, DISPATCH_QUEUE_CONCURRENT)
  }
  
  func objectForKey(key: String, block: ACMemoryCacheObjectBlock) {
  }
  
  func setObject(object: AnyObject?, forKey key: String, block: ACMemoryCacheObjectBlock?) {
  }
  
  func setObject(object: AnyObject?, forKey key: String, withCost cost: UInt, block: ACMemoryCacheObjectBlock) {
  }
  
  func removeObjectForKey(key: String, block: ACMemoryCacheObjectBlock) {
  }
  
  func trimToDate(date: NSDate, block: ACMemoryCacheBlock) {
  }
  
  func trimToCost(cost: UInt, block: ACMemoryCacheBlock) {
  }
  
  func trimToCostByDate(cost: UInt, block: ACMemoryCacheBlock) {
  }
  
  func removeAllObjects(block: ACMemoryCacheBlock) {
  }
  
  func enumerateObjectsWithBlock(block: ACMemoryCacheObjectBlock, completionBlock: ACMemoryCacheBlock) {
  }
  
  //  MARK: - Sync Methods
  
  func objectForKey(key: String) -> AnyObject {
    fatalError("Not finished")
  }
  
  func setObject(object: AnyObject, forKey key: String) {
  }
  
  func setObject(object: AnyObject, forKey key: String, withCost cost: UInt) {
  }
  
  func removeObjectForKey(key: String) {
  }
  
  func trimToDate(date: NSDate) {
  }
  
  func trimToCost(cost: UInt) {
  }
  
  func trimToCostByDate(cost: UInt) {
  }
  
  func removeAllObjects() {
  }
  
  func enumerateObjectsWithBlock(block: ACMemoryCacheObjectBlock) {
  }
   
}
  var costLimit   : UInt  = 0
  var ageLimit    : NSTimeInterval = 0
  
  var removeAllObjectsOnMemoryWarning       : Bool = true
  var removeAllObjectsOnEnteringBackground  : Bool = true
  
  var willAddObjectBlock        : ACMemoryCacheObjectBlock?
  var willRemoveObjectBlock     : ACMemoryCacheObjectBlock?
