2011-12-14 4 views
0

私のiPhoneアプリケーションでは、iPhoneのホームボタンを押したときにXMLファイルからデータをロードするUIWebViewがあり、アプリをロードしようとするとロードしますその後、私はボタンをクリックして再度webviewをロードして、ホームボタンをクリックすると、アプリケーションを再起動しようとすると、すべてが起動していない、そのクラッシュする。私の主催者のクラッシュレポートは次のとおりです。iPhoneのホームボタンをクリックするとクラッシュするアプリケーション

libSystem.B.dylib             0x33c30176 cache_remove_with_block + 18 
1   CoreFoundation                 0x33ad9e52 __NSCacheApplicationDidEnterBackgroundCallBack + 18 
2   CoreFoundation                 0x33a779a4 __cfnote_callback + 20 
3   CoreFoundation                 0x33a4711c __CFXNotificationPost_old + 396 
4   CoreFoundation                 0x33a46dbc _CFXNotificationPostNotification + 112 
5   Foundation                     0x3361cd1c -[NSNotificationCenter postNotificationName:object:userInfo:] + 64 
6   UIKit                         0x320c1752 -[UIApplication _handleApplicationSuspend:eventInfo:] + 494 
7   UIKit                         0x320667a6 -[UIApplication handleEvent:withNewEvent:] + 1910 
8   UIKit                         0x32065ec2 -[UIApplication sendEvent:] + 38 
9   UIKit                         0x32065900 _UIApplicationHandleEvent + 5084 
10  GraphicsServices               0x33b0eefc PurpleEventCallback + 660 
11  CoreFoundation                 0x33a556f8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20 
12  CoreFoundation                 0x33a556bc __CFRunLoopDoSource1 + 160 
13  CoreFoundation                 0x33a47f76 __CFRunLoopRun + 514 
14  CoreFoundation                 0x33a47c80 CFRunLoopRunSpecific + 224 
15  CoreFoundation                 0x33a47b88 CFRunLoopRunInMode + 52 
16  GraphicsServices               0x33b0e4a4 GSEventRunModal + 108 
17  GraphicsServices               0x33b0e550 GSEventRun + 56 
18  UIKit                         0x32099322 -[UIApplication _run] + 406 
19  UIKit                         0x32096e8c UIApplicationMain + 664 

解決方法これは何が原因でしょうか? ヘルプは事前に感謝しています。

+1

てください、あなたはデリゲート(または他の観測者)を持っていますか – Niko

+0

せずに何が起こっているかを見るのは難しいいくつかのコードを追加、 'applicationWillResignActiveを処理していますか? –

答えて

0

私は同じ問題がありました(iOS 4.xだけのデバイスではbtw ..) その原因は、キャッシュ内に可変オブジェクトを使用していることでした。私たちはNSMutableDictionaryをキャッシュに入れ、後でそれを操作します。その後、キャッシュが解放されると(割り当て解除される)、何かが起こったように見えて、後で一時停止してアプリをクラッシュさせました。

これもまたあなたの問題を解決します。


更新:

我々は解決策にthis dev forum entryへの感謝を発見しました。 iOS 4.3より前のNSCacheは通知センターから登録解除されていないようです。

は、我々は NSCacheの簡単なサブクラスを作成し、その(ARC版)のような -deallocメソッドを実装することで、この問題を回避働い:

- (void)dealloc; 
{ 
    // NSCache had an issue on iOS prior to 4.3 where it didn't unregister from notifications and caused crashes 
    // see https://devforums.apple.com/message/421845#421845 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
} 

は今の代わりNSCacheのこのクラスを使用すると、あなたは大丈夫でなければなりません。指が交差した。 `/` UIApplicationWillResignActiveNotification`::)

+0

はまだこの問題に取り組んでいるようです。いいえ、いいニュースはありません:( – stigi

+0

ここに同じ!あなたたちは答えを見つけましたか? – SeongHo

+0

@SeongHo実際に解決策を見つけました。 – stigi

関連する問題