簡體   English   中英

使用ASIHTTPRequest作為NSDictionary密鑰

[英]Use ASIHTTPRequest as NSDictionary Key

我正在嘗試將ASIHTTPRequest/ASIFormDataRequest用作NSDictionary中的鍵,如下所示:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:GPUserData.userlogin forKey:@"username"];
[request setPostValue:GPUserData.password forKey:@"password"];
[request setDelegate:self];
[_delegates setObject:delegate forKey:request];
[_selectors setObject:[NSValue valueWithPointer:selector] forKey:request];

[request startAsynchronous];

但是,當我嘗試從-requestFinished:訪問[_delegate objectForKey:request]時,它不會返回正確的數據( nil或隨機數),因此我將其用作臨時解決方案:

[_delegates setObject:delegate forKey:[request url]];
[_selectors setObject:[NSValue valueWithPointer:selector] forKey:[request url]];

但是[request URL]在每個單獨請求中並不是唯一的。 我知道,要使某項成為可行的鍵, 它需要具有-hash-isEqual:返回相同的結果 ,即,如果對象對-isEqual:返回YES -isEqual:那么它們都必須從-hash返回相同的-hash

ASIFormDataRequest : ASIHTTPRequest : NSOperation : NSObject我看不到任何方法可以覆蓋NSObjectASIHTTPRequest實現(NSCopying) ASIHTTPRequest (NSCopying)協議的-isEqual:-hash

那有什么呢? 為什么不能將請求用作密鑰? 我可以使用該請求的其他唯一標識符嗎?

任何幫助表示贊賞。 作為參考,我正在嘗試實現一個雙層回調,其中WebServices類在-requestFinished上解析數據(並處理網絡錯誤並重新登錄),然后進行另一個回調,以便僅將JSON數據作為NSDictionary發送。 。

您可以將唯一值存儲到request.tag中,還是使用userinfo詞典存儲需要存儲的數據? 例如:

request.userInfo = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"value", @"key", nil];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM