- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用这一行来获取 URL 的内容:
NSString *result=[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:URL]
encoding:NSUTF8StringEncoding
error:nil];
问题是当连接不好时,它会从缓存中加载内容。有没有办法避免这种行为?比如清缓存什么的。
最佳答案
首先,不推荐使用initWithContentsOfURL:encoding:error
从网络资源加载数据。
其次,如果你想控制缓存行为,你应该使用 NSURLRequest
。 NSURLRequest
允许您通过设置请求的 cachePolicy
来自定义请求的缓存行为。在您的情况下,您想使用 NSURLRequestReloadIgnoringLocalCacheData
。使用 NSURLConnection
同步执行此操作的示例是:
NSString *result = nil;
NSData *data = nil;
NSURLResponse *response = nil;
NSURLError *error = nil;
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:URL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20L];
data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if (response != nil && [data length] > 0){
result = [NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
请注意,这是一个非常幼稚的实现,它不检查返回的 HTTP 状态代码、响应的 mime 类型或执行任何错误处理。同步加载网络资源或从主线程加载网络资源也不推荐。更好的实现方式是使用 sendAsynchronousRequest:completion:
或 NSURLSession
。
但是,它确实在高层次上演示了您需要做什么来回答您的问题:NSURLRequest 指定此请求永远不应使用本地缓存,并且返回的数据用于创建 的实例NSString
.
关于ios - 防止 initWithContentsOfURL : from using cache,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25730763/
我目前正在从外部 API 读取一些 XML。 下面的代码工作正常: NSError *error = nil; NSString *xmlString = [[NSString alloc] init
我目前正在使用此代码从 URL 获取数据: NSURL *url = [[NSURL alloc] initWithString:urlstring]; NSString *stringfromFB
使用 initWithContentsOfURL 解析提要时如何设置超时。有时我们的提要会返回空白响应,然后它会尝试永远解析提要。我想设置 30 秒左右的超时,这样会弹出 UIAlertView,然后
在我的代码中,我在 UIWebview 中加载了一个 URL(一个 aspx 文件)。它加载并显示正常。 [webView loadRequest:requestObject]; 我想检查 iPhon
我正在更新一个 iOS 应用程序以成为一个好 child ,并清理一些已弃用的方法。我一直在使用 NSString initWithContentsOfURL,我正在尝试实现新版本 initWithC
基本上我要设置 内容类型:application/json; 为了调用 dot net web 服务并将 json 返回给 iphone 应用程序。 目前我有 NSString * jsonres =
我是新手,所以请耐心等待。我的问题出在以下代码中: AppleScriptController.h #import #import @interface AppleScriptCon
我每 5 秒使用计时器向我的服务器发送一次更新。作为响应,我从服务器收到一个 XML,我使用 NSXMLParser 解析它。 . MyParser 被设置为委托(delegate)并实现解析文档所需
我正在使用这一行来获取 URL 的内容: NSString *result=[[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:U
我正在尝试让 IUAlertview 显示加载应用程序时从网站提取的自定义消息。我可以控制该网站,所以我的想法是,如果我想更改消息,我可以只更改网站。今天早上我询问了如何更新个性化消息,结果就是这个想
我正在为我在 iOS7 开发中遇到的一个问题而苦思冥想。我使用以下代码从网络服务器加载图像: NSData* data = [[NSData alloc] initWithContentsOf
我正在从 xml 和图像加载一些文本,该图像的加载时间比 xml 长,但我想同时显示它们。 我正在使用加载图像 NSData *mydata = [[NSData alloc] initWithCon
我正在用自定义对象数组替换 NSMutableDictionary 对象数组。每个都有 15 个左右的实例变量需要持久化,还有一些是 transient 的。 我曾经使用 -initWithConte
执行以下代码时,当代码执行第二行代码时,我收到运行时错误。错误(显示在调试器中)显示: [NSButton initWithContentsOfURL:]: 无法识别的选择器发送到实例 0x10041
我目前在具有 keyPath“isCancelled”观察者的 NSOperation 中有以下代码: downloaded = FALSE; NSURL *url = [NSURL
我从我的站点获取数据: NSString *website = [NSString stringWithFormat:@"http://www.mysite.com/fbconnect.php?ema
我有一个服务器端 php 脚本,可以从 MySQL 表中获取结果。我正在尝试从 iPhone OS 应用程序中检索这些结果。我正在使用以下方法: NSURL *myURL = [NSURL URLWi
我有一个 iOS 应用程序正在为某些 XML 数据调用 Web 服务,如下所示: NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithConte
如何访问我放入 xCode 项目的支持文件文件夹中的 crashSound.wav 文件?因为以下代码不起作用: @interface Game() { // code... AVAu
有没有办法在以下情况下分配某种委托(delegate)对象 [[NSData alloc] initWithContentsOfUrl:... options:... errorPtr:...] 被调
我是一名优秀的程序员,十分优秀!