我在用
self.imageView.image = UIImage(named: "foo.png")
在UIIMageView
. 我的应用程序中的图像位于images.xcassets
. 问题在于,这个特定init
的缓存图像以按照Apple 官方文档重用:
如果您有一个只显示一次的图像文件并希望确保它不会被添加到系统的缓存中,您应该使用imageWithContentsOfFile:创建您的图像。这将使您的一次性图像远离系统图像缓存,从而潜在地改善您的应用程序的内存使用特性。
我的视图允许在选择图像之前循环浏览图像,因此当我循环浏览时内存占用量会继续增加,即使我从该视图返回时也不会下降。
所以我尝试使用UIIMage(contentsOfFile: "path to the file")
不缓存图像的。在这里,我无法以编程方式获取存储在images.xcassets下的图像的路径。
我试过使用:
NSBundle.mainBundle().resourcePath
和NSBundle.mainBundle().pathForResource("foo", ofType: "png")
没有运气。对于第一个,我得到了 resourcePath,但是通过终端访问它时,我看不到它下面的任何图像资产,而第二个我nil
在使用它时得到了。有没有简单的方法来做到这一点?
还查看了几个 SO 问题(例如this、this和this),但没有运气。我是否必须将图像放在其他地方才能使用pathForResource()
?解决这个问题的正确方法是什么?
很难想象以前没有人遇到过这种情况:)!