2

我的问题与这个讨论有关:http: //www.cocoabuilder.com/archive/cocoa/202211-how-to-get-nsurl-form-nsurlconnection.html

我正在发送几个 NSURLConnections 来传输数据,并且需要能够判断哪个特定连接失败或成功。有返回相关 NSURLConnection 的 NSURLDelegate 方法(didFailWithError 等)。问题是委托方法中没有返回 NSURLRequest(并且 NSURLConnection 中没有 NSURL 访问器)。

我实现的解决方案是维护一个 NSMutableDictionary,它将发送的 URL 字符串与这个 NSURLConnection 的“散列”方法的结果配对。

我已经对其进行了测试,它似乎可以工作 - 委托方法中返回的 NSURLConnection 的哈希值与最初发送的 NSURLConnection 的哈希值相同。

我的问题:这样做安全吗?有没有比散列更好的密钥?我之所以这样问,是因为在我天真的理解中,哈希在某种程度上与内存中该对象的地址相关联,并且似乎有可能使应用程序后台运行或关闭和打开手机可能会随着事情被重写到内存而改变这个值.

非常感谢!

4

1 回答 1

3

我通常使用ASIHTTPRequest, 并且在发出多个连接(同时在队列中或并行)时,我使用 userInfo 字典来传递上下文。

您所指的“哈希 IVAR”实际上是在NSObject协议中定义的 - 作为一种方法。它旨在用于哈希表,因此应该足以满足您的需求。

我仍然更喜欢更一流的方法来解决这个问题,同时更明确地说明哪个请求正在完成/出错。

于 2010-09-29T22:39:01.167 回答