从文件创建的 CGImage 可以为 null

Can CGImage created from file be null

如果 UIImage 是从文件或包创建的,image.CGImage 可以 return null 吗?

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

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

如果找不到指定的图像,UIImage 本身可以是 null(因此 UIImage.CGImage 也将是 null)- 正如您从在文档中,return 将是 nil(C# 中的 null)。这适用于两种方法。

FromBundle 绑定到 imageNamed: - docs here

FromFile 绑定到 imageWithContentsOfFile: - docs here

感谢@BytesGuy 的帮助。正如他所说 UIImage.FromFileUIImage.FromBundle 不能 return UIImagenull CGImage.

对他的回答进行一些更正:

The UIImage can itself be null (and therefore UIImage.CGImage will also be null)

这不是真的,如果UIImagenullUIImage.CGImage会抛出NullReferenceException(不会return null)。

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

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