 }
 
 func AFImageCacheKeyFromURLRequest(request:NSURLRequest) -> String {
-    return request.URL!.absoluteString!
+    return request.URL!.absoluteString
 }
 
 class AFImageCache: NSCache, AFImageCacheProtocol {

        
        self.af_requestImageOperation = (NSBlockOperation(block: { () -> Void in
            var response:NSURLResponse?
            var error:NSError?
            let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: &response, error: &error)
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                if request.URL!.isEqual(self.af_requestImageOperation.request?.URL) {
                    var image:UIImage? = (data != nil ? UIImage(data: data!) : nil)
                    if image != nil {
                        if success != nil {
							success!(request: request, response: response, image: image!, fromCache:false)
                        }
                        else {
                            self.image = image!
                        }
                        UIImageView.sharedImageCache().cacheImage(image!, forRequest: request)
                    }
                    else {
                        if failure != nil {
                            failure!(request: request, response:response, error: error!)
                        }
                    }
                    
                    self.af_requestImageOperation = (nil, nil)
                }
            })
        }), request)
        
        UIImageView.af_sharedImageRequestOperationQueue().addOperation(self.af_requestImageOperation.operation!)
    }

            return (operation, request)
        }
        set {
            objc_setAssociatedObject(self, &AssociatedKeys.RequestImageOperation, newValue.operation, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            objc_setAssociatedObject(self, &AssociatedKeys.URLRequestImage, newValue.request, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        }
    }
    
