应用程序扩展“因内存问题而终止”

Posted

技术标签:

【中文标题】应用程序扩展“因内存问题而终止”【英文标题】:App Extension "Terminated due to memory issue" 【发布时间】:2016-12-16 18:30:49 【问题描述】:

在我的应用通知服务扩展中,我执行以下操作: - 从 Parse 获取数据(在后台), - 将数据写入文件 - 将数据保存在 NSUserDefaults 中(在共享容器中)。

有时我会收到消息:“因内存问题而终止”。没有其他信息说明是什么原因造成的。

有人有这方面的经验吗?这个奇怪的事情是它只是偶尔发生。

【问题讨论】:

我也遇到了同样的问题......你解决了这个问题吗? 【参考方案1】:

通知服务扩展存在内存限制。您应该使用少于大约 4.5M 的内存。所以避免使用 NSUserDefaults。并尽量节省您使用的内存。

今天刚学到这个。 NSUserDefaults 存储为属性列表文件。而且当你从一个属性列表中读取单个值时,整个属性列表会被一次反序列化,导致内存使用量迅速增加。我认为这就是为什么在通知服务扩展中从 NSUserDefaults 读取值会导致内存问题。

【讨论】:

以上是关于应用程序扩展“因内存问题而终止”的主要内容,如果未能解决你的问题,请参考以下文章

将更改的图像保存到相机胶卷时因内存问题而终止

xcode 使用 iOS 10 设备构建项目,但启动时崩溃:来自调试器的消息:因内存问题而终止

来自调试器的消息:在 UITableView/UICollectionView 中使用 gif 图像 Kingfisher 库滚动时因内存问题而终止

扩展组件(反应)或扩展应用程序(下一个/应用程序)

如何开发Chrome扩展程序

iOS 扩展 - 检测“扩展状态更改”(背景/前景)