隐藏警告:同时访问...但修改需要独占访问

Posted

技术标签:

【中文标题】隐藏警告:同时访问...但修改需要独占访问【英文标题】:Hide warnings: Simultaneous accesses to ... but modification requires exclusive access 【发布时间】:2018-02-21 21:41:04 【问题描述】:

我正在使用尚未为 Swift 4 做好准备的第 3 方库,即打破独占内存访问规则 (SE-0176)。

所以,我的控制台充斥着这些警告:

Simultaneous accesses to 0xb1ab1ab1a, but modification requires exclusive access.
Previous access (a modification) started at MyTarget`That3rdPartyLib.func(_:args:) + 123 (0xb1ab1ab1a).
Current access (a read) started at:
<callstack...>

如何删除它们?

【问题讨论】:

【参考方案1】:

在写问题的时候得到了答案。

项目 > 构建设置 > 其他 Swift 标志 > 调试 > 添加标志:-enforce-exclusivity=unchecked

警告:这是使用 Swift 3.2 清理控制台的临时解决方案,而第 3 方开发人员正在为 Swift 4 做好准备。如果您在 Swift 3.2 中有警告(甚至隐藏?) ,您的应用程序将在转换到 Swift 4 后崩溃。

【讨论】:

我的应用不仅在控制台上淹没了这条消息,而且还崩溃了。

以上是关于隐藏警告:同时访问...但修改需要独占访问的主要内容,如果未能解决你的问题,请参考以下文章

交换数组元素显示错误:同时访问但修改需要独占访问

同时访问<地址>,但修改需要独占访问

同时访问0x6040000155d8,但修改需要独占访问

线程5:同时访问0x10b883638,但修改需要独占访问

SwiftUI/CoreData:同时访问0x7f92efc61cb8,但修改需要独占访问

为啥原子操作需要独占缓存访问?