我的代码看起来像这样 -
func addAfterDeletingPrexisting(type: InsightType, value: [String: Any]) {
arrayUpdationQueue.sync {
let insightsLocal = insights
var outputInsights = insights
for (offset: index, element: (key: key, value: _)) in insightsLocal.enumerated() {
if key == type {
outputInsights.remove(at: index) // Crashes here
}
}
insights = outputInsights
self.insights.append((key: type, value: value))
}
}
我的代码随机崩溃
Swift._ArrayBuffer._checkInoutAndNativeTypeCheckedBounds(Swift.Int, wasNativeTypeChecked:Swift.Bool) - > ():
在我打印index
时在控制台上,我得到了这个奇怪的结果 -
(lldb) po index
(Function)
我做错了什么?我知道崩溃是由于索引不是Int。我有一个疑问,是由于不同的队列编辑阵列导致崩溃,但仅此而我才使用queue.sync
。