[NSNull CGImage]:选择资产并将其转换为 JPEG 时出现无法识别的选择器异常

Posted

技术标签:

【中文标题】[NSNull CGImage]:选择资产并将其转换为 JPEG 时出现无法识别的选择器异常【英文标题】:[NSNull CGImage]: unrecognized selector exception when picking an asset and converting it to JPEG 【发布时间】:2014-11-25 11:58:50 【问题描述】:

我正在使用CTAssetPicker (https://github.com/chiunam/CTAssetsPickerController) 来挑选图像,将它们转换为 JPEG 并将它们保存在远程存储位置。到目前为止一切顺利,直到最近(而且很少)我在挑选资产后开始收到奇怪的异常:

NSInvalidArgumentException  
-[NSNull CGImage]: unrecognized selector sent to instance 0x3759f3f0

当调用 UIImageJPEGRepresentation 并使用从资产选择器返回的图像时会发生这种情况。

我试图通过向 JPEG 转换发送空值来重现这一点,但事实并非如此。我发送的UIImages 中的CGImage 似乎为空,但我不知道为什么会这样。

【问题讨论】:

【参考方案1】:

问题是您没有收到图像。您可以使用此代码重现您的错误:

id youThinkYourServerRetunrAnImage = [[NSNull alloc] init];
UIImage *image = youThinkYourServerRetunrAnImage;
[image CGImage];

您需要修正您的请求。

【讨论】:

我一直试图通过传递 nil 而不是 NSNull 的实例来复制。哎呀。现在我需要弄清楚为什么它返回NSNull。谢谢! NSNull 是默认类,例如 JSON 在键中有 值。

以上是关于[NSNull CGImage]:选择资产并将其转换为 JPEG 时出现无法识别的选择器异常的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中 ALAssetRepresentation CGImage 的内存泄漏

如何自动检测已登录的用户并将其转至仪表板页面,而无需再在Ionic 4和firebase中登录

颤振flutter_webview_plugin错误[NSNull长度]:无法识别的选择器发送到ios上的实例

通过 Core Image 框架复制结果 `func masking(_ mask: CGImage) -> CGImage?`

Xamarin Mac,将 CGImage 转换为 .NET System.Drawing.Image

[UIImageView CGImage]:无法识别的选择器发送到实例 0x1783e5b00