【发布时间】:2019-01-30 13:18:02
【问题描述】:
我在我的 swift 项目中使用 websocket,从过去几周开始,我收到了这些崩溃:
第 0 行
Crashed: com.MyProject.Channel
0 MYProject 0x100e53f7c specialized Arrayat(_:) (<compiler-generated>)
1 MYProject 0x100e55a3c $S6MYProject7ChannelC20checkResponseMessage33_12B1408E1049A8D244FCDCBD3CEC 8679LL08responseE0yAA0bE0C_tFyyXEfU_ (Channel.swift:137)
2 MYProject 0x100ce3de8 $SIg_Ieg_TR (<compiler-generated>)
3 MYProject 0x100ce3e08 $SIeg_IyB_TR (<compiler-generated>)
更多信息来自代码:
Channel.TMLock.sync {
var idx = 0
for msg in Channel.trackedMsgs {
mt = msg
if msg.isResponseTo(responseMessage: responseMessage) {
Channel.trackedMsgs.remove(at: idx)
break
}
idx += 0
}
}
Channel.swift:137 => Channel.trackedMsgs.remove(at: idx)
有人对此有任何想法吗?
【问题讨论】:
-
如果您附上包含 Channel.swift:137 行的方法代码,我们可能会假设有什么问题。
-
@NazarLisovyi 我添加了更多代码以便更好地理解。
-
显然,您想删除索引超出范围的元素。这个逻辑看起来不对
-
@NazarLisovyi 我也假设了同样的原因,但我只是不明白与 (
) 连接的连接。 -
是的,
line 0在 Swift 堆栈跟踪中是真实存在的。查看此问题中的详细信息:stackoverflow.com/questions/53872700/….
标签: ios swift crash firebase-crash-reporting