【发布时间】:2020-12-22 05:43:24
【问题描述】:
我接管了一些遗留代码,有这样的代码sn-p
let albumGroups = data.getJSONArray("groups")
let groupNum = albumGroups.length()
var album: JSONObject
for i in 0..<groupNum
{
album = albumGroups.getJSONObject(i)
orderSummary.album.name[i] = album.getString("name")
}
当应用程序在调试模式下构建时,它可以正常运行。
但是如果它是在Release模式下构建的,它会在i为1时在album.getString("name")崩溃。错误表明专辑变量已被释放。
我尝试在启用 Address Sanitizer 标志的情况下运行该应用程序。
我的问题是,据我所知,专辑变量超出了循环的范围,为什么它在第一个循环结束后被释放?
【问题讨论】: