 
             cache?.clearCache()
             dispatch_async(dispatch_get_main_queue()) { () -> Void in
-                cache?.addItems(items)
+                self.cache?.addItems(self.items)
             }
         }
         else {

        cache?.addItems(newItems)
        let itemsAdded = _indexesForItems(Set(newItems), inArray: items)
        dispatch_async(dispatch_get_main_queue()) { () -> Void in
            delegate?.itemsUpdated(itemsAdded, itemsDeleted: [])
        }
    }
    

    private func _processNewItems(newItems: [T], clearCacheIfNewItemsAreDifferent: Bool) {
        if newItems == items {
            dispatch_async(dispatch_get_main_queue()) { () -> Void in
                self.delegate?.itemsUpdated([], itemsDeleted: [])
            }
            return
        }
