+ [UIPasteboard _accessibilityUseQuickSpeakPasteBoard]:无法识别的选择器发送到课堂

Yev*_*nin 5 accessibility objective-c ios ios8

我在Apple Dev论坛上问过这个问题,但仍然没有得到答案.

我们100%iOS 8设备崩溃:

+[UIPasteboard _accessibilityUseQuickSpeakPasteBoard]: unrecognized selector sent to class
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪是:

Thread : Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 0x2889ec1f __exceptionPreprocess + 126
1  libobjc.A.dylib                0x36049c8b objc_exception_throw + 38
2  CoreFoundation                 0x288a3f55 __CFExceptionProem
3  CoreFoundation                 0x288a1def ___forwarding___ + 354
4  CoreFoundation                 0x287d3df8 _CF_forwarding_prep_0 + 24
5  UIAccessibility                0x331fc157 +[UIPasteboard_QSExtras pasteboardWithName:create:] + 30
6  MyApp                          0x002eb507 -[TJEventOptimizer .cxx_destruct]
7  MyApp                          0x002eb28b -[TJEventOptimizer .cxx_destruct]
8  MyApp                          0x002f0c2b -[TJEventOptimizer .cxx_destruct]
9  MyApp                          0x002eeedb -[TJEventOptimizer .cxx_destruct]
10 Foundation                     0x295adb5b __NSThread__main__ + 1118
11 libsystem_pthread.dylib        0x3670ce93 _pthread_body + 138
12 libsystem_pthread.dylib        0x3670ce07 _pthread_start + 118
13 libsystem_pthread.dylib        0x3670ab90 thread_start + 8
Run Code Online (Sandbox Code Playgroud)

尽管如此,TapJoy被捕获在堆栈跟踪中,他们的常见问题解答说这是错误的并且与TapJoy的代码无关,而是与iOS 8错误无关.

这是对的吗?

与崩溃相关的可访问性设置是什么?

l0g*_*g3r 3

出现这个问题是因为 TapJoy 使用了静态库中的类别(即UIPasteboard_QSExtras)解决方案非常简单,您需要通知链接器这一点

在此输入图像描述

1) 单击项目
2) 单击目标
3) 打开Build Settings选项卡
4) 搜索Other Linker Flags

在此输入图像描述

5) 双击Other Linker Flags
6) 添加-ObjC-all_load标志
7)
删除​​二进制文件(从设备/模拟器中删除),
清理项目(点击cmd+shift+k)并
再次构建(点击cmd+b)。

你准备好了!