possiblyReleasedObject

possiblyReleasedObject

在我的应用程序中,我有一系列长期运行的过程。有时,当应用程序进入后台时,这些进程之一将返回并尝试通知其他对象(已发布)它已完成,从而导致EXC_BAD_ACCESS。就像是:

[process runForALongTimeWithCompletion:^(){
  [possiblyReleasedObject heyTheProcessFinished];
}];


如何检查possiblyReleasedObject是否已发布?或者,更确切地说,我如何检查它是否可解除引用,以便对其进行引用不会导致EXC_BAD_ACCESS错误?

最佳答案

无法(安全地)检查指向对象的指针是否指向Objective-C中的有效内存位置。您需要对程序进行结构设计,以使持有指向possiblyReleasedObject指针的对象保留该程序,以免意外释放该程序。

当持有指向possiblyReleasedObject的指针的对象不再需要它时,通常好的做法是在调用nil之后将指针设置为release,以避免意外地取消引用错误的指针。

08-17 20:40