从文件创建的 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
不是null
,CGImage
也不会是null
。在少数情况下情况并非如此 (explained in this answer),但这不适用于您正在使用的方法。
如果找不到指定的图像,UIImage
本身可以是 null
(因此 UIImage.CGImage
也将是 null
)- 正如您从在文档中,return 将是 nil
(C# 中的 null
)。这适用于两种方法。
FromBundle
绑定到 imageNamed:
- docs here
FromFile
绑定到 imageWithContentsOfFile:
- docs here
感谢@BytesGuy 的帮助。正如他所说 UIImage.FromFile
和 UIImage.FromBundle
不能 return UIImage
与 null
CGImage
.
对他的回答进行一些更正:
The UIImage
can itself be null
(and therefore UIImage.CGImage
will also be null
)
这不是真的,如果UIImage
是null
,UIImage.CGImage
会抛出NullReferenceException
(不会return null
)。
同样在 Xamarin.iOS 中,如果 UIImage
已被处置,则可以获得 null
CGImage
:
UIImage image = UIImage.FromFile(name);
image.Dispose();
// now image.CGImage is null
如果 UIImage
是从文件或包创建的,image.CGImage
可以 return null
吗?
UIImage image = UIImage.FromFile(name);
// or
UIImage image = UIImage.FromBundle(name);
// image.CGImage == null?
一般来说,如果UIImage
不是null
,CGImage
也不会是null
。在少数情况下情况并非如此 (explained in this answer),但这不适用于您正在使用的方法。
如果找不到指定的图像,UIImage
本身可以是 null
(因此 UIImage.CGImage
也将是 null
)- 正如您从在文档中,return 将是 nil
(C# 中的 null
)。这适用于两种方法。
FromBundle
绑定到 imageNamed:
- docs here
FromFile
绑定到 imageWithContentsOfFile:
- docs here
感谢@BytesGuy 的帮助。正如他所说 UIImage.FromFile
和 UIImage.FromBundle
不能 return UIImage
与 null
CGImage
.
对他的回答进行一些更正:
The
UIImage
can itself benull
(and thereforeUIImage.CGImage
will also benull
)
这不是真的,如果UIImage
是null
,UIImage.CGImage
会抛出NullReferenceException
(不会return null
)。
同样在 Xamarin.iOS 中,如果 UIImage
已被处置,则可以获得 null
CGImage
:
UIImage image = UIImage.FromFile(name);
image.Dispose();
// now image.CGImage is null