应用程序扩展“因内存问题而终止”
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 库滚动时因内存问题而终止