PSPDFKit и UIWebView не работят заедно

Използвам 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, за да имам правилното поведение. Но когато включа PSPDFKit дори без MessageUI, грешката се появява.

Някой има идея как да го разреши или да намери решение?

Грешката възниква във версии на iOS 7, само на устройства, които не са на симулатор. И всичко работи добре в iOS 6.

Намерих тази публикация UIWebView: decidePolicyForNavigationAction?, но резолюцията не е много ясна!

Благодаря


person Liberitus    schedule 28.07.2014    source източник


Отговори (1)


Така че разрешавам този бъг. Не знам защо се появи тази грешка и не знам защо корекцията ми работи.

Всъщност премахвам стария код за съвместимост с iOS 5. Този код използва библиотеката objc/runtime.h и целта му беше да се инжектира във всички наши подкласове на UIViewController, ако не имплементират shouldAutorotateToInterfaceOrientation:

Използвахме този код, за да направим това

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