【问题标题】:Is it safe to use the "hash" method to track NSURLConnections in memory?使用“哈希”方法跟踪内存中的 NSURLConnections 是否安全?
【发布时间】:2011-04-19 02:07:14
【问题描述】:

我的问题与此讨论有关: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 的哈希值相同。

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

非常感谢!

【问题讨论】:

    标签: iphone memory hash nsurlconnection nsurl


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊,是的,我不知道为什么我将哈希称为 IVAR。我查看了 ASIHTTPRequest,也可能会走这条路,感谢您的帮助。
    猜你喜欢
    • 2020-03-30
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 2012-06-23
    • 2022-09-28
    • 2018-11-04
    相关资源
    最近更新 更多