如果对象在其方法执行完成之前被释放怎么办



我有一个视图控制器,它触发Web服务获取一些数据,并在解析后将结果存储在不同线程中的核心数据中。

我有很多数据,所以解析需要一些时间,并且不确定在导航中弹出 viewController 是否会停止我的解析方法的执行,

如果它在两者之间停止执行,那么我的核心数据数据库将损坏,因此它会停止执行或在释放我的 ViewController 对象之前执行选择器

MyViewController *vc = [[MyViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
[vc performSelectorInBackground:aSelector withObject:arg];

您可以考虑将 Web 服务器交互移动到其他对象。 此对象可以处理请求/响应并将结果存储到核心数据。 此对象也可能是具有用于处理请求的队列的全局对象。 如果不是,则需要在视图控制器 dealloc 期间处理取消请求。

视图控制器可以侦听对核心数据的更改并采取适当的操作。

最新更新