ios - 检测主线程上的磁盘操作

时间:2018-02-08 09:48:54

标签: ios swift3

是否可以检测主线程上的磁盘操作?即对在主线程上执行的sqlite的查询。在android中有严格模式,每当app在主线程上执行磁盘操作时,它会崩溃应用程序。在ios中有这样的东西吗?

我继承了大代码库并随机发现在主线程上执行的数据库查询。我想有一些选择来简单地发现所有。 (我使用的是仪器,但每次在主线程上有不允许的操作时抛出异常会更好)

我看到的唯一可行解决方案是在每次磁盘操作之前检查Thread.current.isMainThread

由于

1 个答案:

答案 0 :(得分:1)

您可以启用类似于严格模式的核心数据并发调试模式,当从不正确的线程访问核心数据实体时,它将引发异常。

您可以在运行

时传递以下参数来启用它
-com.apple.CoreData.ConcurrencyDebug 1

您可以获得更多信息和更深入的解释here