一旦集线器返回结果,我试图在调用时使用完成处理程序来执行某些操作。我目前使用以下行:
myHub invoke:@"stpm" withArgs:messageParam completionHandler:^(SRHubResult *hubResult) {
NSLog(@"Complete");
}
但是该块永远不会被调用。调用仍然可以正常工作,但该块永远不会被使用。关于为什么的任何建议?
一旦集线器返回结果,我试图在调用时使用完成处理程序来执行某些操作。我目前使用以下行:
myHub invoke:@"stpm" withArgs:messageParam completionHandler:^(SRHubResult *hubResult) {
NSLog(@"Complete");
}
但是该块永远不会被调用。调用仍然可以正常工作,但该块永远不会被使用。关于为什么的任何建议?
我发现了这个问题。在 SRHubProxy.m 中,当在 invoke 中从 SRHubProxy.m 调用方法 send 时,该行:
[_connection send:hubData];
是错的。无论您是否已声明,该块永远不会通过。我将其更改为:
[_connection send:hubData completionHandler:block];
现在它正确地通过了块并且它似乎工作。
我只能发现您的代码片段存在 1.5 个问题,completionHandler 返回 NSDictionary、NSArray、NSNumber 或 NSString。另外,messageParam 是数组吗?