如果从文件或捆绑包创建image.CGImage
,null
可以返回UIImage
吗?
UIImage image = UIImage.FromFile(name);
// or
UIImage image = UIImage.FromBundle(name);
// image.CGImage == null?
答案 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.FromFile
和UIImage.FromBundle
无法使用UIImage
null
返回CGImage
。
对他的回答进行了一些修改:
UIImage
本身可以是null
(因此UIImage.CGImage
也是null
)
事实并非如此,如果UIImage
为null
,则UIImage.CGImage
会抛出NullReferenceException
(不会返回null
)。
同样在Xamarin.iOS中,如果已处置null
,则可以CGImage
UIImage
:
UIImage image = UIImage.FromFile(name);
image.Dispose();
// now image.CGImage is null