是否可以检测主线程上的磁盘操作?即对在主线程上执行的sqlite的查询。在android中有严格模式,每当app在主线程上执行磁盘操作时,它会崩溃应用程序。在ios中有这样的东西吗?
我继承了大代码库并随机发现在主线程上执行的数据库查询。我想有一些选择来简单地发现所有。 (我使用的是仪器,但每次在主线程上有不允许的操作时抛出异常会更好)
我看到的唯一可行解决方案是在每次磁盘操作之前检查Thread.current.isMainThread
由于
答案 0 :(得分:1)
您可以启用类似于严格模式的核心数据并发调试模式,当从不正确的线程访问核心数据实体时,它将引发异常。
您可以在运行
时传递以下参数来启用它-com.apple.CoreData.ConcurrencyDebug 1
您可以获得更多信息和更深入的解释here