Tag: caching

AVURLAsset的caching行为

我使用AVURLAsset与各种AV / MP播放器类,它似乎是无视我的服务器的caching头。 我正在处理逐渐下载的小video(而不是HLS)。 有没有办法确保video被caching? 有没有办法预先cachingvideo,以便他们立即播放? 我尝试了简单地改变NSURLCache中的参数,但是到目前为止我还没有运气。 我也找不到任何直接的方式来操作如何通过AVURLAssetcachingURL提取。 我不想单独下载文件并指向本地版本,因为在开始播放之前我不想等待文件完全下载。 理想情况下,我也想避免自己pipe理本地磁盘caching。

如何获得由AFNetworking的UIImageView类别存储的caching图像?

我在我的应用程序中使用UIImageView+AFNetworking.h以下类别的UIImageView+AFNetworking.h ,它的工作正常,它为我caching照片,并顺利加载图像。 有一次,我想获得一个已经在我的caching中的图像。 所以我挖掘到以上类别类,我发现以下代码,我认为 – 可以是有益的。 这是它的片段: @implementation AFImageCache – (UIImage *)cachedImageForRequest:(NSURLRequest *)request { switch ([request cachePolicy]) { case NSURLRequestReloadIgnoringCacheData: case NSURLRequestReloadIgnoringLocalAndRemoteCacheData: return nil; default: break; } return [self objectForKey:AFImageCacheKeyFromURLRequest(request)]; } – (void)cacheImage:(UIImage *)image forRequest:(NSURLRequest *)request { if (image && request) { [self setObject:image forKey:AFImageCacheKeyFromURLRequest(request)]; } } @end 如果你想要我添加这个网页版本,它已经在这里 。 我认为, – (UIImage *)cachedImageForRequest:(NSURLRequest *)request是可以返回我的caching图像的方法。 […]

禁用cachingAlamofire iOS

我试图使用Alamofire进行iOS请求时禁用caching。 当我尝试向服务器发出请求,然后以不同的用户身份进行身份validation时发出请求,我得到一个304状态码。 我试过这个链接的一切,所有这些都不工作或导致错误。 后端使用Express.js处理请求,并使用Passport.js进行用户身份validation。 在Alamofire和iOS应用程序上禁用caching的正确方法是什么? 还是有什么我可以做,以防止这种情况发生在后端? 无论哪种方式,我不太确定下一步如何前进。 更新 看了这个问题多一点,看起来Alamofire发送完全相同的authentication信息,即使是传递到authentication部分的信息是完全不同的。 但是,如果我等几分钟再次尝试请求,它会更新到正确的身份validation信息。 即使您在新请求中更新身份validation信息,也几乎可以将身份validation信息caching几分钟。 所以你不能改变authentication信息,直到每几分钟清除一次。 这使得更less的意义。 更新2 以下是我的代码 func reloadData() { print("Reloading data!!") let headers: HTTPHeaders = [ "testvalidationtoken": "test", ] let keychain = KeychainSwift() let email: String = keychain.get("email")! let password: String = keychain.get("password")! var configuration = URLSessionConfiguration() configuration.urlCache = nil var manager : SessionManager = SessionManager(configuration: […]

如何使用EVURLCache在PreCache中加载UIWebView

我尝试创build一个iOS应用程序,有一个UIWebview,我想加载它的网站。 我尝试使用EVURLCache进行caching。 但是它不会从我的项目中的PreCache文件夹加载。 该应用程序运行良好。 但是,当我尝试再次运行它只显示我的空白屏幕。 我认为应用程序尝试从caching中加载页面,但应用程序无法find它的caching。 我使用https://github.com/evermeer/EVURLCache进行caching。 我通过豆荚安装 MainVC import UIKit class MainVC: UIViewController, UIWebViewDelegate { @IBOutlet weak var webView: UIWebView! override func viewDidLoad() { super.viewDidLoad() webView.delegate = self let url = URL(string: BASE_URL) let request = URLRequest(url: url!) webView.loadRequest(request) } func webViewDidStartLoad(_ webView: UIWebView) { print("*****************") print(" webViewDidStartLoad(") print("*****************") } func webViewDidFinishLoad(_ webView: UIWebView) […]

iPhone显示旧版本的应用程序

当我尝试通过Xcode在我的iPhone上运行应用程序时,它显示了一个旧版本,然后我正在处理 – 我已经更改了图像和布局等。 如何清除caching或仅用于开发应用程序? 这在我之前没有发生过。 用模拟器很容易重置它:-)

用UIImage和下载的图像进行caching

我有一个类方法,用完成块获取图像。 这个提取的UIImage被添加到一个带有相关密钥的NSCache。 这似乎工作正常,但是,在获取图像的方法,我使用UIImage的imageWithData:方法,我发现不会caching它的数据,只有imageNamed:做。 我可以理解的获取内存警告正因为如此,我怎么确保用UIImage的imageWithData:方法加载的图像不再需要时从内存中删除? 编辑 这里是下载图像的方法的代码。 – (void)imageForFootageSize:(FootageSize)footageSize withCompletionHandler:(void (^)(UIImage *image))completionBlock { if (completionBlock) { __block UIImage *image; // Try getting local image from disk. // __block NSURL *imageURL = [self localURLForFootageSize:footageSize]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageURL]]; dispatch_async(dispatch_get_main_queue(), ^{ if (image) { completionBlock(image); } else { // // Otherwise try getting remote […]

ASIHTTPRequest似乎总是cachingJSON数据

我使用ASIHTTPRequest API从Web端获取一些JSON数据。 我正在使用asynchronous请求而不更改默认caching属性。 代码如下: __unsafe_unretained ASIHTTPRequest * request = [ASIHTTPRequest requestWithURL:url]; request.timeOutSeconds = 30; [request setCompletionBlock:^(void) { NSString *str = [request responseString]; /* * * */ }]; [request setFailedBlock:^(void) { NSLog(@"status: %@",[request responseStatusMessage]); NSLog(@"%@ : %@",[request url],[[request error] debugDescription]); }]; [request startAsynchronous]; 但是,尽pipe服务器中的JSON数据的内容发生了变化,但是获得的JSON数据仍旧保留原来的数据。 我使用networking浏览器检查数据,无论是在笔记本电脑和iPhone Safari浏览器。 当我在JSON更改后请求url时,它首先返回旧数据,但是如果我刷新页面,它将返回更新的数据。 但在应用程序中,ASIHTTPRequest总是返回旧数据。 我也尝试debuggingASIHTTPRequest代码,以查看是否使用了任何caching的数据。 但它似乎从来没有使用下载caching,因为它没有被设置。 它永远不会input[useDataFromCache]方法。 可能是什么问题呢? 我怎样才能强制ASIHTTPRequest检查是否有更新的数据在服务器上,并使其得到真正更新的JSON? 编辑 我使用了Cache-Control头,现在我得到正确的更新的JSON数据。 代码如下: […]

iOS中的图像caching

如果我做 rowBackground = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bottomCell2.png"] 图像caching的应用程序的整个生命周期或重新加载和recached每次我执行该指令(在其他视图或应用程序的一部分)? 我在我的应用程序的每个tableview中都这样做。 它有效吗? 提前致谢!

各种iOS版本在Web应用程序caching大小限制及其响应方面有何不同?

由于我手头没有所有的设备和iOS版本,所以很难理解我的客户在较老的设备(即iPad 1和2,都运行iOS 5 [不确定小版本])时遇到的一些问题。 有没有关于每个iOS应用程序如何响应Web应用程序达到高速caching大小限制的任何文档? ( 5MB据说?或者我可能是错的,可能只适用于Web SQL数据库的大小 ) 所有设备和iOS版本的caching大小限制也是一样的? 注意:我的客户在开始时遇到的问题是正确的,它显示页面就好像Javascript被禁用 (我发送了一个消息,询问是否是这种情况)。 但是,如果他们没有手动禁用它,是否可以自动禁用JavaScript的Web应用程序,因为超过了限制?

迅捷清除JSONcaching?

我正在处理一些经常更新的API数据。 我最近发现,在服务器上更新数据时,数据不能在手机上正确更新。 试图解决这个问题几个小时后,我终于试图从我的手机上删除应用程序,然后重新安装。 经过一些进一步的testing,我发现它正在打印出旧的JSON。 一旦我删除应用程序并重新安装它,它成功地打印出正确的更新的JSON。 从那里我收集到,这可能是手机caching旧的JSON数据的问题。 那么我该如何去清除这个caching? 或迫使它提出新的要求。 (我正在使用swiftyJson,虽然我不认为这与这个具体问题有任何关系) 我确实发现了另外一个这样的问题,但已经很老了(Obj-C,2014),没有答案。 以下是我如何获取我的数据: var request = NSURLRequest(URL: formulaAPI!) var data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: nil) var formula = JSON(data: data!) // Loop through the api data. for (index: String, portfolio: JSON) in formula["portfolio"] { // Save the data into temporary variables tempStockName = portfolio["name"].stringValue tempTicker = […]