测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年4月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Khoa Pham 维护。
跟踪主线程上的 UIKit 访问
这是使用 UIView 扩展对 PSPDFUIKitMainThreadGuard.m 进行 Swift 的移植,使用 swizzling 技术
调用 Guard.setup
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// setup
Guard.setup()
return true
}
尝试在其他线程上访问 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 文件。