App Crash:内存不足

时间:2010-10-25 12:49:48

标签: iphone objective-c cocoa-touch crash

我的应用因内存不足而崩溃。我不确定这完全是我的错,因为它列出了大约7或8个其他应用程序崩溃了?我该怎么办呢?

Incident Identifier: 2CC74C33-179F-4CD2-8FAA-00CF0A344749
CrashReporter Key:   1657e021ecba3a19c5ed9f0cff62947a426a2bc2
Hardware Model:      iPhone3,1
OS Version:          iPhone OS 4.1 (8B117)
Date:                2010-10-24 12:20:38 +0100
Time since snapshot: 2044 ms

Free pages:        1329
Wired pages:       21508
Purgeable pages:   0
Largest process:   Instagram

Processes
         Name                 UUID                    Count resident pages
       securityd <3dcc6e23849cb3ee197720700284156d>     309
        sandboxd <4c01175d65fe7efb292e307389d3387b>     178
     ReportCrash <2ad0d335f1b93cc74e0b5be79850229d>     255
mDNSResponderHel <a0d7f455b6f2069587ea7bc956d79655>      70
          Stocks <55e537a6739e58dc068e1436930213ba>    1162
    mediaremoted <507d59f44f735d6e2855b23a6275557a>     216
MobileMusicPlaye <02ed082c795446617957bbae8974a2c8>    1052
     dataaccessd <40c418e18e9bbd950ef7e3fb593645de>     618
             spd <6419715f9e6891201e16b722fca84793>     126
      MobileMail <215c71d2434ce352d04786b93cda5340>    2483
      calaccessd <90c4c48a02f0dbf0d1adaad27b8d5945>     427
       MobileCal <db3e6efa621fc989420ccc43298d5b80>    1619 (jettisoned)
      StockTwits <3786112667f535bff10bb6f7966bb852>    2067 (jettisoned)
        Mint.com <0f38a50fd98c755ef34e0fe8b0c25adc>    4461 (jettisoned)
        AppStore <99bf23a9224aa148ac3e009873f9c7b9>     998 (jettisoned)
          Reeder <dcb69039fa5b4426b3db9f9920054f3e>    5835 (jettisoned)
           Meebo <22f145af489fb92066006a5a3cac813a>    3684 (jettisoned)
    MobileSafari <67a5ebc3754e0ce1e482760c7e56f9c5>    3512
           Skype <d570c35d6d2f51713e874937dd8112f4>    4769
        Facebook <ae1fa9da7f8951ffbf693bbd0ed36aaf>    2459 (jettisoned)
     MobileTimer <98640aaee653fc9188652d6cdab13d67>    1294 (jettisoned)
         Twitter <62edb7ce453c603ad1b8b3bdcbc4910b>    5843
 MobileSlideShow <40eded841026ed418bebe49a342f2c8f>    3566
       Instagram <25e2a98b5d3de6f2cf2f246df8a49a9d>   11523 (active)
            misd <d9b8f85780f931007d309fc836185ab0>     119
MobileStorageMou <bd2184fe17b3c9ccbadd9120bd669c99>     102
     Preferences <9123dcc666c97bb1d63a5921968c8b34>    1666
     MobilePhone <b50b6283b8c52a51fb9e48ee5c909b80>     804
         imagent <4ef86a68405738280f19e5fbc0af56db>     291
             lsd <4fb2cf7b5475b39b2c56d9588821eb45>     157
        SCHelper <30ca097cbb6306cf66157da7fd4de07c>     110
         notifyd <ab40010781bef81228df18acf1acdbb2>     129
        BTServer <ce7c062b4df09b835c77a6086b7ef0d8>     136
      CommCenter <a8a6257faa2a5213f0a2f5c763f9acfe>     335
     SpringBoard <983033e585706c1c6c99eed85cd8dbdb>    8315 (active)
      accessoryd <b99ccd1b099c015edb93e8d1cbf03e36>     109
            apsd <f031a0e787d8840097a4812fb1c89f5e>     240
        awd_ice3 <b598d42ac4fdd950ac5c2c9a1835f70e>     124
         configd <b2b3af98743381e759dd5b17115a0378>     548
   fairplayd.N90 <3ae05b3bbcb034b0d4d4712e8fc19f99>      95
       locationd <963c5d93cfaf1b1139045b1658ecfc26>    1031
   mDNSResponder <68dc311f118d171ede7b91f43c323b7d>     235
    mediaserverd <3ebe3a043c2dba96b70d8ede30bcb6ab>    1220
       lockdownd <bfeda752b819f06f4828e112d3ca695c>     326
         syslogd <60e8005a73e76d6ee81a8b45a9443a16>      94
         launchd <b15ff1a8f2f37c3b0df0343899757b17>     103

**End**

5 个答案:

答案 0 :(得分:2)

这是预期的行为。后台应用程序继续只在最前面的应用程序休闲时运行。如果最前面的应用程序决定它需要你的资源,你别无选择,只能立即放弃它们。

答案 1 :(得分:1)

确保使用仪器和X-code的内置俚语分析仪修复应用程序中的所有泄漏。
使用仪器尽可能多地运行您的应用程序。释放dealloc方法中的所有实例变量并确保您对didRecieveMemoryWarning:作出反应。
didRecieveMemoryWarning:中设置一个断点,然后你可以确认这是你的错。

答案 2 :(得分:0)

我怀疑你能。总是检查分配的返回值,完成时释放内存,尽可能少地使用内存,(我不记得这是否适用于iPhone)运行valgrind以查找应用程序中的任何内存泄漏

答案 3 :(得分:0)

当iOS决定终止您的应用时,已经太晚了。

相反,如果您的应用程序处于活动状态,则在applicationDidReceiveMemoryWarning:the equivalent notification收到UIApplicationDelegate消息时,您需要删除不需要的内存。

为了最大限度地减少当另一个应用程序使用太多时应用程序被驱逐出内存的可能性,您所能做的就是释放您在进入后台时可以重新创建的任何数据(几乎相同)当内存不足时你应该经历的过程。)

但是,你永远不能保证永远不会被终止。

答案 4 :(得分:0)

我遇到类似的问题,我的应用程序崩溃了低内存警告。我已经在didReceiveMemoryWarning委托方法中释放了内存,但它仍在崩溃。

最终我在RootViewController中注释了[super didReceiveMemoryWarning](我使用导航应用模板创建了我的应用)。我认为发生崩溃是因为RootViewController在该调用中被释放。