MainThreadGuard 2.1.0

MainThreadGuard 2.1.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017年4月
SwiftSwift 版本3.0
SPM支持 SPM

Khoa Pham 维护。



MainThreadGuard

跟踪主线程上的 UIKit 访问

描述

这是使用 UIView 扩展对 PSPDFUIKitMainThreadGuard.m 进行 Swift 的移植,使用 swizzling 技术

使用方法

调用 Guard.setup

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
  // setup

  Guard.setup()

  return true
}

特性

  • setNeedsLayout
  • setNeedsDisplay
  • setNeedsDisplayInRect

尝试在其他线程上访问 UIKit,MainThreadGuard 将引发断言

class ViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = UIColor.white

    let label = UILabel()
    view.addSubview(label)

    DispatchQueue.global(qos: DispatchQoS.QoSClass.background).async {
      label.text = "Setting text on background thread"
    }
  }
}

安装

MainThreadGuard 可以通过 CocoaPods 获取。要安装它,只需在您的 Podfile 中添加以下行:

您应该只在 Debug 配置中添加此行

pod "MainThreadGuard", git: 'https://github.com/onmyway133/MainThreadGuard', configurations: 'Debug'

作者

Khoa Pham,[email protected]

许可证

MainThreadGuard 使用 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。