我有一个for-loop
做一些事情,并分配大约200MB在其执行期间.
即使在for循环执行几分钟后,数据也不会被释放.
它只更改数据,而不会创建需要在以后存储的新数据.
下面是我的代码:
func mutateNetwork(){
let conCount = currentWorkflowHolder.workflowData[currentWorkflowHolder.workflowData.count-1][currentWorkflowHolder.workflowData[currentWorkflowHolder.workflowData.count-1].count-1].thirdConnections.count-1
for _ in 0...50{
let arg1 = Int.random(in: 0...conCount)
let arg2 = Int.random(in: 0...currentWorkflowHolder.workflowData[currentWorkflowHolder.workflowData.count-1][currentWorkflowHolder.workflowData[currentWorkflowHolder.workflowData.count-1].count-1].thirdConnections[conCount].count)
currentWorkflowHolder.workflowData[0][0].thirdConnections[arg1][arg2] = Float.random(in: -50...50)
}
}
因为我试图消除潜在的问题,所以有点乱.
我试过了:
- 用
autoreleasepool{}
分, - 我发现的其他解决方案似乎集中在释放循环中的RAM(但它没有工作),
编辑: currentWorkflowHolder是一个属性,但它没有get {}或set {}.