PSPDFKit和UIWebView无法协同工作

时间:2014-07-28 06:29:32

标签: ios uiwebview pspdfkit

我将PSPDFKit用于链接到主项目的静态框架,该项目使用另一个静态框架和UIWebView。

加载主项目后,当我启动UIWebView并调用请求时,出现此错误:

void SendDelegateMessage(NSInvocation *): delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode

并且没有任何内容添加到网页视图中。

如果我没有将PSPDFKit加载到我的第一个框架中,则问题不会出现,一切正常。

我还发现如果我链接PSPDFKit所需的所有框架而不是PSPDFKit,我有同样的错误。我必须删除MessageUI框架才能拥有正确的行为。 但是,即使没有MessageUI,当我包含PSPDFKit时,也会发生错误。

有人有想法解决它或找到解决方法吗?

该错误发生在iOS 7版本上,仅在不在模拟器上的设备上。在iOS 6中一切正常。

我发现这篇文章UIWebView: decidePolicyForNavigationAction?,但解决方案不是很明确!

由于

1 个答案:

答案 0 :(得分:0)

所以我解决了这个bug。我不知道为什么会出现这个错误,我也不知道为什么我的修复工作正在进行。

事实上,为了与iOS 5的兼容性,我删除了旧代码。这段代码使用了 objc / runtime.h 库,它的目标是注入我们所有的UIViewController子类,如果它们不是&#39 ; t实现shouldAutorotateToInterfaceOrientation:

我们使用此代码执行此操作

Method shouldAutorotateToInterfaceOrientation = class_getInstanceMethod([self class], @selector(shouldAutorotateToInterfaceOrientation:));
class_addMethod(class, @selector(shouldAutorotateToInterfaceOrientation:), method_getImplementation(shouldAutorotateToInterfaceOrientation), method_getTypeEncoding(shouldAutorotateToInterfaceOrientation));