问题

模拟器会卡死崩溃在剪切板的线程,如果复制空白就不会出现这个问题
image.png

解决方案

关掉模拟器的剪贴板同步功能,重启模拟器。
Simulator -> Edit -> Automatically Sync Pasteboard 取消勾选
iOS 子线程读取剪切板问题 - 图2
重启模拟器 Hardware -> Restart

子线程读取剪切板

主线程读取剪切板时,偶现APP主线程卡死,然后程序被看门狗杀死。后来我们把读取剪切板操作放到了子线程。虽然是UIKit下的接口,但经与苹果技术人员确认,以及上线一年没回收到任何与此相关的crash,证实可行。 具体代码如下。另外,如果有多个业务方需要读取剪切板,建议放到同一队列管理。

  1. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^() {
  2. UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
  3. NSString *string = [pasteboard.string copy];
  4. NSLog(@"pasteboard:%@",string);});
  5. });
  6. }

参考