我使用(尝试)AlamofireImage。 我保存到caching的图像并不真正保存。 我的代码包括: import Alamofire import AlamofireImage let imageCache = AutoPurgingImageCache( memoryCapacity: 100 * 1024 * 1024, preferredMemoryUsageAfterPurge: 60 * 1024 * 1024 ) 那么我自己保存一个图像使用: imageCache.add(image, withIdentifier: path) 但在下一次运行中,当我尝试使用相同的path获取此图像时,总是返回nil: if let image = imageCache.image(withIdentifier: path){ return image } return nil 我究竟做错了什么? 而运行\debugging我可以看到imageCache-currentMemoryUsage = 0 谢谢。
我将AlamofireImage与PromiseKit和Alamofire结合使用。 我使用承诺来链接x数量的图像下载,因为我想这样做同步。 我似乎无法理解,如果ImageDownloader()自动caching,或者如果我必须明确地将图像添加到caching? 我目前看到的唯一例子是没有使用ImageDownloader所以我很难find答案。 如果没有 – 我如何添加caching? 我试过使用: self.imageDownloader.imageCache?.addImage(image, withIdentifier: imageUrl) 但是它所做的只是增加我所有永恒的内存使用量(例如,一次又一次地将相同的图像添加到caching中)
我一直在阅读大量的答案 ,通过使用AlamofireImage帮助器方法(例如af_setImageWithURL() )或任何等价的库,你不需要担心细胞重用的东西(另外,许多发表的教程实际上只是这样做) 。 也就是说,在后台下载完成之后,我不必保留对单元格的弱引用,也不必通过使用tableView的cellForRowAtIndexPath()方法来更新它的imageView,就像我们通常手动进行请求所做的那样。 首先,这是真的吗? 如果是这样,在库里面是怎么做的,因为我试图跟踪AlamofireImage的af_setImageWithURL()代码,我找不到任何努力来确保我们仍然在我们提出请求的单元格上工作。 我错过了什么吗? 如果听起来很愚蠢,我很抱歉,但我真的很困惑。
我想使用AlamofireImage从url下载图像,然后将其caching在设备磁盘空间中。 我读了几篇文章,发现AlamofireImage在ImageDownloader类的帮助下支持这个。 在这个答案中给出了最有意思的信息 所以我试图为ImageDownloader设置一个自定义的NSURLCache,以便它将图像直接caching到磁盘。 我通过设置内存容量为0.然后我使用这个自定义的ImageDownloader来下载一个图像。 我为磁盘path指定的文件夹是在磁盘上创build的,但不幸的是它保持为空,并且图像没有以任何方式被caching。 **编辑:**重要的是要注意,caching的响应不保存在caching目录中的文件夹中,而是保存在文件夹旁边的数据库文件中。 有人能告诉我我在这里做错了吗? 非常感谢您的阅读! func diskImageDownloader(diskSpaceMB: Int = 100) -> ImageDownloader { let diskCapacity = diskSpaceMB * 1024 * 1024 let diskCache = NSURLCache(memoryCapacity: 0, diskCapacity: diskCapacity, diskPath: "alamofireimage_disk_cache") let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() configuration.URLCache = diskCache let downloader = ImageDownloader(configuration: configuration) UIImageView.af_sharedImageDownloader = downloader return downloader } func getProfileImage(atURL url: […]
我使用AlamofireImage在UITableViewCell中的UIImageView上设置图像,如下所示: cell.imageView.af_setImageWithURL(url) 下载后不显示图像。 它将在从内存caching中加载的第二次显示图像。 看来,使用占位符图像使所有的差异。 这工作并打印(下载)图像的地址: cell.imageView.af_setImageWithURL(URL, placeholderImage: UIImage(named: "placeholder"), filter: nil, imageTransition: .None, completion: { (response) -> Void in print("image: \(cell.imageView.image)") }) 这不起作用,并打印“图像:无” cell.imageView.af_setImageWithURL(URL, placeholderImage: nil, filter: nil, imageTransition: .None, completion: { (response) -> Void in print("image: \(self.image)") }) 在执行af_setImageWithURL:之前,将单元格af_setImageWithURL:设置为空的图像也可以工作af_setImageWithURL: cell.imageView.image = UIImage() 这是UITableViewCell,AlamofireImage中的错误还是我做错了什么?
我们如何添加一个身份validation头到Alamofire 4.0的上传function? 下面是示例代码,但是我看不出为函数添加标题。 Alamofire.upload( multipartFormData: { multipartFormData in multipartFormData.append(unicornImageURL, withName: "unicorn") multipartFormData.append(rainbowImageURL, withName: "rainbow") }, to: "https://httpbin.org/post", encodingCompletion: { encodingResult in switch encodingResult { case .success(let upload, _, _): upload.responseJSON { response in debugPrint(response) } case .failure(let encodingError): print(encodingError) } } ) 之前的alamofire版本支持直接添加标题,但不支持添加标题。 有任何想法吗?
花了几个星期把我所有的Alamofire代码迁移到AF4 / Swift3之后,我终于修复了由于Alamofire函数变化而导致的所有编译器错误,但是现在当我尝试构build一个时,我得到了大量的这些Apple Mach-O错误。 其中至less有29个,他们都有Alamofire或AlamofireImage(除了最后一个是“连接器命令失败,退出代码1”)。 我不知道在这里做什么,我会发布任何额外的信息需要,任何人都可以帮助我吗? 编辑:这里是前3个错误,我只复制了突出显示为红色的部分。 我会发布完整的日志,如果有必要,但它的巨大。 也许这足以让人们弄清楚发生了什么,如果没有,让我知道! 所有错误都在Undefined symbols for architecture arm64:下Undefined symbols for architecture arm64: "Alamofire.DataRequest.validate <A where A: Swift.Sequence, A.Iterator.Element == Swift.Int> (statusCode : A) -> Self", referenced from: – "Alamofire.(request (Alamofire.URLConvertible, method : Alamofire.HTTPMethod, parameters : [Swift.String : Any]?, encoding : Alamofire.ParameterEncoding, headers : [Swift.String : Swift.String]?) -> Alamofire.DataRequest).(default argument […]
我需要使用Image文件和JSON调用Multipart请求。 我已经尝试过,但仍然得到错误。 // define parameters let parameters = [ "hometown": "yalikavak", "living": "istanbul" ] Alamofire.upload(multipartFormData: { multipartFormData in if let imageData = UIImageJPEGRepresentation(image, 1) { multipartFormData.append(imageData, withName: "file", fileName: "file.png", mimeType: "image/png") } for (key, value) in parameters { multipartFormData.append((value?.data(using: .utf8))!, withName: key) }}, to: "upload_url", method: .post, headers: ["Authorization": "auth_token"], encodingCompletion: { encodingResult in […]
我正在使用Alamofire , AlamofireImage来使用带有Firebase后端的ImageShack存储caching图像。 有时内存超过100MB。 我想在上传之前学习如何改进我的图像caching和缩放比例。 例如,我已经使用该AutoPurgingImageCache在类整个项目中声明了一个公共caching: let photoCache = AutoPurgingImageCache( memoryCapacity: 100 * 1024 * 1024, preferredMemoryUsageAfterPurge: 60 * 1024 * 1024 ) 有没有什么办法来定义这些memoryCapacity , preferredMemoryUsageAfterPurge来节省内存? 他们究竟是什么意思? 我正在使用下面的Alamofire.upload didFinishPickingImage : func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { let urlStr = "http://post.imageshack.us/upload_api.php" let url = NSURL(string: urlStr)! let imgData = UIImageJPEGRepresentation(image, 0.25)! […]
我正在使用AlamofireImage库来caching下载的图像。 码: import UIKit import AlamofireImage class ViewController: UIViewController { @IBOutlet weak var firstImageView: UIImageView! @IBOutlet weak var secondImageView: UIImageView! let downloader = ImageDownloader() let URLRequest = NSURLRequest(URL: NSURL(string: "https://httpbin.org/image/jpeg")!) override func viewDidLoad() { super.viewDidLoad() requestFirstImage() } func requestFirstImage() { downloader.downloadImage(URLRequest: URLRequest) { response in print(response.request) print(response.response) debugPrint(response.result) if let image = response.result.value { self.firstImageView.image […]