Ios 我如何处理一个较早启动的应用程序,但它是;由于内存压力而终止“;现在

Ios 我如何处理一个较早启动的应用程序,但它是;由于内存压力而终止“;现在,ios,xcode,debugging,memory-management,memory-leaks,Ios,Xcode,Debugging,Memory Management,Memory Leaks,我正在Xcode中开发iOS应用程序。早些时候,我让它启动并运行,达到了有限的功能级别。然后是编译失败,声称未触及的样板生成代码有语法错误。将源代码复制到新项目中会遇到另一个问题 现在,我可以编译并开始运行,但它甚至在启动映像出现之前就声明应用程序由于内存压力而关闭。总的视觉资产约为2.72亿,可以在不影响图形丰富性的情况下对其进行优化,这是迄今为止该计划中唯一一个预计规模较大的领域。(资产可能保存在内存中,也可能不保存在内存中;例如,每个当前加载的映像都会被填充,我的代码从不以编程方式访问任何

我正在Xcode中开发iOS应用程序。早些时候,我让它启动并运行,达到了有限的功能级别。然后是编译失败,声称未触及的样板生成代码有语法错误。将源代码复制到新项目中会遇到另一个问题

现在,我可以编译并开始运行,但它甚至在启动映像出现之前就声明应用程序由于内存压力而关闭。总的视觉资产约为2.72亿,可以在不影响图形丰富性的情况下对其进行优化,这是迄今为止该计划中唯一一个预计规模较大的领域。(资产可能保存在内存中,也可能不保存在内存中;例如,每个当前加载的映像都会被填充,我的代码从不以编程方式访问任何加载映像。)并且它在加载映像自身加载之前崩溃

如何解决此内存问题?我可能能够精简处理图像的方式,但我怀疑还有另一个根本原因。还是内存消耗过多

谢谢,

查看苹果的iOS编程文档。使用苹果的应用程序来确定你的应用程序使用的内存的方式、时间和数量

你应该考虑的一个方法是从你的应用程序中断开图形资源,一旦你感觉到它们符合iOS的要求和限制,一个接一个地添加它们。


现在,我的回答的这一部分是意见:听起来你的应用程序被应用商店拒绝的风险很高,以防这是你的应用程序的预期目的地。

你正在使用272MB?这将立即在iPhone 4S或更旧的设备上消失。。iPhone 5可以处理这个问题,但在启动时需要消耗大量内存。因此,你试图在应用程序启动期间加载近300MB的图像?同意,我建议只有在应该显示的情况下才使用延迟加载-加载资源。在图像崩溃之前,我不会以编程方式加载任何图像;它在显示发射图像之前崩溃。在那之后(它已经工作了),我尝试以编程方式加载图像,但我们还没有做到。崩溃发生在任何程序加载之前,甚至在启动映像显示之前。需要明确的是:之前,当它工作时,它加载了我尝试加载的所有映像,并且零崩溃。我可能需要做优化,但在这种情况下,我不认为我包括了图形的一切,但厨房水槽,使它无法加载。的确如此,而且比现在的行为具有更大的形象权重。所以我需要进行优化,但除了在发布期间加载3亿张图像之外,还有其他一些事情正在进行(我对此不负责任;3亿张图像是所有可用图像的总和),而且它会使旧手机崩溃的真正可能性不会改变:它工作了。+1:我同意,如果您在首次发布时使用了太多内存,那么在通过应用商店评论时可能会遇到问题。。。你必须优化这个,谢谢。我知道至少有一个优化会显著减少整个发布图像。。。但其中很大一部分是启动图像。关于图像的一个快速提示是:调整图像大小,使其成为iOS将使用的最大大小(例如,如果磁盘上有一个600x600图像,但在视网膜显示器上仅显示为300x300,则将源图像大小调整为300x300)。我一直在创建的图像大小为将使用的最大值。对于使用视网膜的iPad上的纵向和横向加载以及背景图像,这仍然是一个很大的重量。或者加载和背景图像只是根据需要或代码要求加载?这取决于您的代码。您需要避免缓存UIImage对象,因为它们会占用大量内存。确保仅在需要时才从文件系统加载映像。