我正在开发一个iOS今天的扩展,可以从UIPasteboard读取图像并将其保存在磁盘上。此过程因大型图像而失败,因为iOS扩展无法使用大量内存。要解决此问题,我首先检查图像的大小,并尝试确定,如果窗口小部件可以保存它,或者应该将此任务委派给其主机应用程序:
let MAXIMUM_IMAGE_SIZE_BYTES = <SomeMagicNumber>
if let clipboardImage = UIPasteboard.generalPasteboard().image {
let imageSize = CGImageGetHeight(clipboardImage.CGImage) * CGImageGetBytesPerRow(clipboardImage.CGImage)
if imageSize > MAXIMUM_IMAGE_SIZE_BYTES {
// Open host app to save image
}
else {
// Save image directly
}
}
我有以下问题:
非常感谢你的帮助!
答案 0 :(得分:1)
我刚刚开始查看通知服务扩展正在使用的内存。我找到了这个演讲。可能对别人有帮助。
https://cocoaheads.tv/memory-use-in-extensions-by-conrad-kramer/
您对此问题的解决方案是什么?