[英]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
我看不到任何方法可以覆蓋NSObject
和ASIHTTPRequest
實現(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.