没有调用目标 C 完成块
Posted
技术标签:
【中文标题】没有调用目标 C 完成块【英文标题】:Objective C completion block doesn't get called 【发布时间】:2018-02-27 18:13:49 【问题描述】:我试图在单元测试中调用完成块,但它永远不会到达。 代码如下:
[vc configureRecorder:^
NSLog(@"Completion...");
];
这是方法:
-(void)configureRecorder:(void(^)(void))callback
NSLog(@"Method");
【问题讨论】:
我假设您确实在 @"method" 内部的某个地方调用了callback()
?如果你没有那么你为什么期望它被调用。如果你这样做了 - 怎么样?请注意在主线程上执行单元测试,不要等待其他线程中发生任何异步操作。如果是这样 - 看看 XCTestExpectation developer.apple.com/documentation/xctest/xctestcase/…
【参考方案1】:
您需要在方法结束时调用完成块。像这样:
-(void)configureRecorder:(void(^)(void))callback
//@"Method"
callback()
【讨论】:
以上是关于没有调用目标 C 完成块的主要内容,如果未能解决你的问题,请参考以下文章
UIImagePicker 完成或取消后调用 popToRootViewControllerAnimated? (iPhone,目标 C)