iOS应用程序扩展';最大内存预算

iOS应用程序扩展';最大内存预算,ios,memory,ios-app-extension,Ios,Memory,Ios App Extension,根据苹果的应用程序扩展编程指南: 运行应用程序扩展的内存限制明显低于前台应用程序的内存限制。在这两种平台上,系统可能会主动终止扩展,因为用户希望在主机应用程序中返回其主要目标。一些扩展可能具有比其他扩展更低的内存限制:例如,小部件必须特别有效,因为用户可能同时打开多个小部件 应用程序扩展有一个非常严格的内存限制,并且各不相同 每种应用程序扩展的最大内存预算是多少? 我可以像iOS应用程序一样测试它们吗?我刚刚在iPad Pro 9.7上遇到“线程1:EXC\u资源\u类型\u内存(限制=120

根据苹果的应用程序扩展编程指南:

运行应用程序扩展的内存限制明显低于前台应用程序的内存限制。在这两种平台上,系统可能会主动终止扩展,因为用户希望在主机应用程序中返回其主要目标。一些扩展可能具有比其他扩展更低的内存限制:例如,小部件必须特别有效,因为用户可能同时打开多个小部件

应用程序扩展有一个非常严格的内存限制,并且各不相同

每种应用程序扩展的最大内存预算是多少?

我可以像iOS应用程序一样测试它们吗?

我刚刚在iPad Pro 9.7上遇到“线程1:EXC\u资源\u类型\u内存(限制=120 MB,未使用=0x0)”崩溃


因此,2GB iOS设备上的内存是120 MB。

在我的例子中,我试图在iImageView中显示5500 x 3000 px的图像,结果它在iPhone SE上崩溃了(
EXC\u RESOURCE\u TYPE\u MEMORY(limit=120 MB,unused=0x0)
),但在模拟器上没有


运行内存配置文件有助于解决问题。在分配给UIImageView之前,请缩小图像大小。图像解决了此问题。

没有为应用程序扩展设置内存预算。扩展可能消耗的内存量与其他也使用内存的进程有关。例如,我有一些小部件在使用大约4000个rpage(16mb)时被终止,其他时候,它们在使用1000个rpage时被终止。这些小部件被终止的最重要原因不是因为它们占用了太多内存,而是因为当操作系统要求时,它们无法释放内存。我有一个iMessage应用程序扩展,在iPhone X上以大约100 MB的使用量终止,系统显示200 MB以上的可用空间。至少我认为这就是它退出的原因。我的today扩展在iPad上以26MB的速度崩溃gen@ColdGrub1384我也有同样的问题。在我的代码中,它将图像资源分配给情节提要中的UIImageView。这增加了故事板二进制大小。已将其删除并在代码中指定了图像。解决了将覆盖添加到抓取的图像时出现的崩溃名称问题,崩溃速度超过8-10mb。但是,不要将其分配给UIImageView,而是创建一个带有图形上下文的UIImage,它在drawInRect.vImage`\u错误\u缓冲区\u写入\u太小\u参数\u到\u vImage\u CheckBacktrace时崩溃:关闭扩展时,如何释放内存?在我的例子中,每当我打开扩展时,它会不断增加内存,当我在第五次打开时,它会崩溃并说内存超出限制。这一定是扩展内存泄漏。检查你自己的代码。因为我在扩展中也有问题。始终记住,RAM限制不会在模拟器上强制执行。