【发布时间】:2012-06-27 16:43:20
【问题描述】:
我已经为 iOS 项目实现了一个下载器。它接受请求,并在下载完成后通过委托响应目标。它是异步的,并且目标(显然)是一个弱引用,所以当下载完成时,如果目标不再被分配,我有一个 bad_acces。 我已经解决了添加一个在所有请求中搜索目标并将其设置为 nil 的方法(在释放使用它的对象时调用)。 这与我想要的行为相去甚远(完全独立于其他对象:如果不再请求下载,它将被缓存:它没有停止下载的方法,只有一个优先级队列) 有一种安全的方法可以知道指针是否仍然指向有效的内存地址?
【问题讨论】:
-
如果引用是
weak并且你在ARC中运行,那么理论上,当对象被删除时引用应该设置为nil。 -
感谢回复:还是有用的。下载器是非 arc 库的一部分,但我将其包含在 ARC 项目中。
-
弱引用并不意味着 ARC 之外的任何东西,不是吗?使用 ARC,它们仅在 OS X 10.7 及更高版本和 iOS 5 及更高版本上受支持。
-
对不起,我的错。我的意思是“不保留”而不是弱
标签: objective-c ios xcode pointers