如果在完成方法执行之前释放了对象,该怎么办?

时间:2012-04-25 13:38:51

标签: iphone core-data release popviewcontroller performselector

我有一个viewController,用于触发Web服务获取一些数据,并在解析到另一个线程后将结果存储在核心数据中。

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

如果它停止执行,那么我的核心数据DB将被破坏,所以它会在释放我的viewController对象之前停止执行或执行选择器

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

1 个答案:

答案 0 :(得分:3)

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

您的视图控制器可以侦听Core Data的更改并采取适当的措施。