使用contentsOfFile而不是图像命名

时间:2015-04-10 23:33:10

标签: ios swift

我的应用程序应用程序在iPad Mini上显示内存警告后崩溃。经过大量研究后,我发现问题是由于使用UIImage( named:)进行内存分配,例如:

SkipTutorial.image = UIImage(named: "skipTutorial.png")

我应该使用contentsOfFile方法,以便不缓存图像。所以我用过:

if let imgPath = NSBundle.mainBundle().pathForResource("skipTutorial", ofType: "png") {
     SkipTutorial.image = UIImage(contentsOfFile:imgPath)
}

但是这不能获取图像。图像位于Xcode中的 Images.xcassets 中。基本上我的应用程序使用了许多不需要缓存的图像。我在这里发现了类似的问题:

How can I stop my swift app from crashing

甚至他的查询在如何使用contentsOfFile方法的评论中都没有得到答复。如果有人帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:5)

据我所知,您无法使用xcassets

只需将您的图像包含在Xcode中的文件夹中,确保将它们复制到捆绑包中,然后使用

访问它们
let path = NSBundle.mainBundle().pathForResource(imageName, ofType: "png")
let image = UIImage(contentsOfFile: path)