我在寫一個RSS feed,並使用NSXMLParser爲我解析一個XML頁面。 一切正常。如何區分委託方法中的NSURLConnections?
這是處理異步連接的代碼:
static NSString *feedURLString = @"http://www.example.com/data.xml";
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:feedURLString]];
feed = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];
現在我想要添加其他網站使用上述同樣的代碼進行分析,而我需要做不同的動作,在不同的URL
我採取委託函數:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
問題是我無法弄清楚哪個網站是所謂的,我只得到了數據。
我怎樣才能找出連接解析到哪個URL?
例如在:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
我可以檢查NSString
在NSURL URL
是來自NSURLResponse
但在上述功能我不能。
在10.5+上,你可以使用'NSMapTable'來處理'NSURLConnection - > NSURL'映射。在10.0到10.4之間,你可以做同樣的事情,但是你會被笨重的C API('NSCreateMapTable'和朋友)而不是Obj-C API卡住。 如果您需要10.5+,肯定會給PubSub框架看一看。 – 2009-11-22 00:16:36
非常好的一點,NSMapTable是一個很好的選擇,比潛入CFMutableDictionary更容易。 :-) – 2009-11-22 03:42:52