带有 UIImage 的 UNNotificationAttachment 超出内存

Posted

技术标签:

【中文标题】带有 UIImage 的 UNNotificationAttachment 超出内存【英文标题】:UNNotificationAttachment with UIImage exceeds memory 【发布时间】:2019-04-03 13:10:24 【问题描述】:

我正在尝试将应用资产目录中的图像作为附件显示在推送通知中。

我使用这些文章和问题作为灵感来源: UNNotificationAttachment with UIImage or Remote URL https://www.avanderlee.com/ios-10/rich-notifications-ios-10/

除了一张图片外,该方法效果很好。对于此图像,通知服务扩展崩溃:

Thread 2: EXC_RESOURCE RESOURCE_TYPE_MEMORY (limit=12 MB, unused=0x0)

在 UIImage 上调用方法 pngData() 后发生崩溃。

崩溃似乎与光盘上图像文件的大小没有直接关系,因为使用这种方法的其他几个图像要大一些(我们所说的范围大约在 10KB 到 25KB 之间)。

知道如何规避这个问题吗?到目前为止,我尝试使用 jpegData(compressionQuality:) 代替,但同样的图像再次导致问题,而其他图像则有效。

【问题讨论】:

【参考方案1】:

我最终解决了这个问题,根本不使用资产目录,而是直接将附件保存在包中,找到包中附件的 URL,然后使用此 URL 在推送中显示附件。

【讨论】:

以上是关于带有 UIImage 的 UNNotificationAttachment 超出内存的主要内容,如果未能解决你的问题,请参考以下文章

带有 UIImage 的 UIBarButtonItem 太宽

带有颜色和居中文本的 UIImage

带有 UIImage 的 Swift Playgrounds

左侧单点触控 iphone 上带有圆角的 UIImage

带有 UIImage 的 UNNotificationAttachment 超出内存

从带有数据的照片库中打开 UIImage