2016-12-16 52 views
2

在我的應用程序通知服務擴展我做以下事情: - 獲取數據(背景)的解析, - 將數據寫入到文件 - 在NSUserDefaults的保存數據(在共享容器)。應用程序擴展「終止因內存問題」

有時我收到消息:「由於內存問題而終止」。沒有關於是什麼原因的其他信息。

有人有這方面的經驗?這個奇怪的事情是,它只是偶爾發生。

+0

我遇到同樣的問題......你有沒有解決這個問題? –

回答

2

通知服務擴展中存在內存限制。你應該使用小於大約4.5M的內存。所以避免使用NSUserDefaults。並嘗試保存您使用的內存。

今天剛剛瞭解到這一點。 NSUserDefaults作爲屬性列表文件存儲。當你從屬性列表中讀取單個值時,整個屬性列表會立即反序列化,從而導致內存使用的快速增加。我認爲這就是爲什麼從通知服務擴展中讀取NSUserDefaults的值導致內存問題的原因。