你好我有一个下面的代码可以正常工作,有一个例外,在Pull to Refresh之后它会返回rss feed的缓存版本。 例如,如果我使用不同的URL或为LoadRSSRefresh函数添加其他查询参数,它会动态重新加载新的Feed,但是如果我想使用相同的URL执行pull to refresh,则会为其提供缓存版本。
谢谢
import UIKit
class eventsTableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate, NSXMLParserDelegate {
var myFeed : NSArray = []
var url: NSURL = NSURL()
var urlRefresh: NSURL = NSURL()
var refresher: UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.rowHeight = 70
self.tableView.dataSource = self
self.tableView.delegate = self
url = NSURL(string: "http://example.com/?cat=6&feed=rss2")!
loadRss(url)
refresher = UIRefreshControl()
refresher.addTarget(self, action: "refresh", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refresher)
urlRefresh = NSURL(string: "http://example.com/?cat=6&feed=rss2")!
loadRssRefresh(url)
}
func loadRss(data: NSURL) {
var myParser : XmlParserManager = XmlParserManager.alloc().initWithURL(data) as XmlParserManager
myFeed = myParser.feeds
tableView.reloadData()
println("load RSSURL01")
}
func loadRssRefresh(data: NSURL) {
var myParser : XmlParserManager = XmlParserManager.alloc().initWithURL(data) as XmlParserManager
myFeed = myParser.feeds
tableView.reloadData()
println("load RSSURL02")
self.refresher.endRefreshing()
}
func refresh(){
loadRssRefresh(urlRefresh)
println(urlRefresh)
}
答案 0 :(得分:1)
创建NSURLRequest
时,请将缓存策略设置为ReloadIgnoringLocalAndRemoteCacheData
。
在Swift中
let request = NSURLRequest(URL: url, cachePolicy:
NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData,
timeoutInterval: 10.0)
目标C
NSURLRequest *request = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:60.0];