从文件创建的CGImage可以为null

时间:2016-08-18 07:33:28

标签: ios xamarin.ios uiimage cgimage

如果从文件或捆绑包创建image.CGImagenull可以返回UIImage吗?

UIImage image = UIImage.FromFile(name);
// or
UIImage image = UIImage.FromBundle(name);
// image.CGImage == null?

2 个答案:

答案 0 :(得分:1)

通常,如果UIImage不是null,则CGImage也不会是null。在少数情况下,情况并非如此(explained in this answer),但这不适用于您正在使用的方法。

如果无法找到指定的图片,UIImage本身就可以null(因此UIImage.CGImage也会null) - 正如您从文档中看到的那样,返回值为nil(C#中为null)。这适用于这两种方法。

FromBundle绑定到imageNamed: - docs here

FromFile绑定到imageWithContentsOfFile: - docs here

答案 1 :(得分:0)

Thanx到@BytesGuy寻求帮助。正如他所说UIImage.FromFileUIImage.FromBundle无法使用UIImage null返回CGImage

对他的回答进行了一些修改:

  

UIImage本身可以是null(因此UIImage.CGImage也是null

事实并非如此,如果UIImagenull,则UIImage.CGImage会抛出NullReferenceException(不会返回null)。

同样在Xamarin.iOS中,如果已处置null,则可以CGImage UIImage

UIImage image = UIImage.FromFile(name);
image.Dispose();
// now image.CGImage is null