Swift适当的自动释放池

时间:2015-03-28 03:35:47

标签: xcode swift nsdata autorelease

将图像加载到表格视图单元格时,我遇到了严重的内存问题。使用autoreleasepool纠正问题的正确方法是什么?我试过了:

for i in 0 ..< 5 {
    autoreleasepool {
        for j in 0 ..< 1000 {
            image = UIImage(data: data)
            dispatch_async(dispatch_get_main_queue(), {
                if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) {
                    // cellToUpdate.imageView?.image = image
                    cell.imageView!.image = image
                }
            })
        }
    }
}

1 个答案:

答案 0 :(得分:1)

我在我的代码中使用了这种结构,它可以帮助您解决问题:

func tooManyPictures() {
    let file = pathForResourceInBundle

    for _ in 0 ..< 5 {
        autoreleasepool {
            for _ in 0 ..< 1000 {
                let image = NSImage(contentsOfFile: file)
            }
        }
    }
}