在iOS中读取URL时缓存问题

在iOS中读取URL时缓存问题,ios,objective-c,Ios,Objective C,我正在开发一个iPhone应用程序,在这个应用程序中,我可以读取存储在URL中的公交时刻表。时间表经常变化,所以每次我都想重新阅读,而不是从缓存中复制。这是我正在使用的代码: NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:timetable_URL]]; NSData *response = [NSURLConnection sendSynchronousRequest:reques

我正在开发一个iPhone应用程序,在这个应用程序中,我可以读取存储在URL中的公交时刻表。时间表经常变化,所以每次我都想重新阅读,而不是从缓存中复制。这是我正在使用的代码:

   NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:timetable_URL]];
   NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

然而,这似乎读取了缓存的副本,因此当服务器上的时间表发生变化时,应用程序需要一段时间来获取它。谁能告诉我如何强制从服务器读取数据?感谢您在这方面的帮助。

您可以在创建NSURL请求时指定缓存策略

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:timetable_URL]
                          cachePolicy: NSURLRequestReloadIgnoringLocalCacheData
                        timeoutInterval:30.0];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

您可以在创建NSURLRequest时指定缓存策略

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:timetable_URL]
                          cachePolicy: NSURLRequestReloadIgnoringLocalCacheData
                        timeoutInterval:30.0];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

对NSURLRequest使用
cachePolicy
属性,指定
NSURLRequestReloadIgnoringLocalCacheData


在指定
NSURLRequestReloadIgnoringLocalCacheData的NSURLRequest上使用
cachePolicy
属性

尝试以下方法:

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
  cachePolicy:NSURLRequestReloadIgnoringCacheData
  timeoutInterval:timeInterval]
NSURLConnection *urlConnection = [NSURLConnection connectionWithRequest:urlRequest
   delegate:self];
和使用:

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
   return nil;
}
尝试以下方法:

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
  cachePolicy:NSURLRequestReloadIgnoringCacheData
  timeoutInterval:timeInterval]
NSURLConnection *urlConnection = [NSURLConnection connectionWithRequest:urlRequest
   delegate:self];
和使用:

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
   return nil;
}

这个代码工作得很好!几个月来,我一直在断断续续地想办法解决这个问题,但不知怎么的,在文档中找不到正确的页面。这段代码工作得非常好!几个月来,我断断续续地想弄明白这一点,但不知何故,在文档中找不到正确的页面。