应用扩展“由于内存问题而终止”

时间:2016-12-16 18:30:49

标签: ios push-notification ios-app-extension

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

有时我收到消息:“由于内存问题而终止”。没有关于导致这种情况的其他信息。

有人有这方面的经历吗?奇怪的是它只是时不时发生。

1 个答案:

答案 0 :(得分:3)

通知服务扩展中存在内存限制。你应该使用小于约4.5M的内存。因此,请避免使用NSUserDefaults。并尝试节省您使用的内存。

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