在checkInoutAndNativeTypeCheckedBounds崩溃

时间:2018-01-24 12:15:29

标签: ios arrays swift enumerate indexoutofrangeexception

我的代码看起来像这样 -

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

0 个答案:

没有答案