如何在没有缓存的Monotouch中从文件加载UIImage?

Kru*_*lur 4 uikit uiimage xamarin.ios ios

如果我看一下这里的讨论:http: //monotouch.2284126.n4.nabble.com/UIImageView-td4303177.html

两者,UIImage.FromFile()并且UIImage.FromFileUncached()映射到imageWithContentsOfFile:并且不应该缓存,但是我的经验是不同的,我很确定UIImage.FromFile()缓存(从我在Instruments中看到的).

这里的文档(http://docs.xamarin.com/ios/tutorials/Working_with_Images)说明了UIImage.FromBundle()缓存,但UIImage.FromFile()没有.这仍然是真的吗?或者,FromFile()如果图像在应用程序包中,可能会有一些魔法可以缓存吗?

有人可以说明正确的方法是什么:

  • 使用缓存加载UIImage?
  • 在没有缓存的情况下加载UIImage?

pou*_*pou 7

UIImage.FromFileUIImage.FromFileUncached相同的.他们都调用相同的imageWithContentsOfFile:选择器.

Xamarin的文档FromFileUncached解释了为什么这样做.

FromFile的别名,只是用一个更明确的名称来引起人们对此调用的无缓存性质的注意,与FromBundle相比.

从历史上看,这个选择器的原始API被命名FromFileUncached,而旧 FromFile方法被映射到imageNamed:- 但事实证明这是一个错误,因为后面的选择器意味着来自bundle.

FromBundle添加了一种新方法,而不是破坏API,FromFile变得与之相同FromFileUncached.

我将[Obsolete]为该FromFileUncached方法添加一个属性,因为它会使IDE内部更明显,即无需阅读文档.

有人可以说明正确的方法是什么:

FromFile[Uncached]不缓存,FromBundle确实.