【发布时间】:2012-08-31 16:06:06
【问题描述】:
我正在尝试实现一个在后台执行任务然后在主线程上调用块的方法:
+ (void)migrateStoreWithCompletionHandler:(MigrationControllerCompletion)completion
{
MigrationController *controller = [[MigrationController alloc] initWithCompletionBlock:completion];
[controller migrateStore];
}
这是-initWithCompletionBlock: 方法:
- (id)initWithCompletionBlock:(MigrationControllerCompletion)completion
{
self = [super init];
if (self)
{
_completion = [completion copy];
}
return self;
}
后台工作发生在-migrateStore。问题是 ARC 在[controller migrateStore] 之后发布了controller。因为controller 是持有该块的对象,所以我无法调用它。有人对如何解决此问题有任何建议吗?
【问题讨论】:
标签: objective-c ios automatic-ref-counting objective-c-blocks