带有 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 的 Swift Playgrounds