4

如果我看这里的讨论: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 ?
4

1 回答 1

7

UIImage.FromFile并且UIImage.FromFileUncached相同的。他们都调用同一个imageWithContentsOfFile:选择器。

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

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

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

添加了一个新FromBundle方法,并且为了不破坏 API,FromFileFromFileUncached.

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

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

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

于 2012-05-02T20:05:00.323 回答