0

通常、クラッシュ ログには、これが発生している可能性がある場所が示されますが、この場合、取得できるのはこれだけです。私のメイン ビューが A で、A、B、および C ビューがあるとします。

これは、次のことを行った場合にのみ発生します。

A から B から C に移動し、アプリを終了して他のいくつかのアプリをロードします。次に、私のアプリに戻り、B に戻り、次に A に戻ります (これがクラッシュする場所です)。

編集 - 以前に間違ったスレッドを投稿しました...これが正しいスレッドです

クラッシュログ:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x4daf03bd
Crashed Thread:  7

Thread 7 name:  Dispatch queue: com.apple.root.default-priority
Thread 7 Crashed:
0   libobjc.A.dylib                 0x36f22f78 objc_msgSend + 16
1   Foundation                      0x33707d04 _NSDescriptionWithLocaleFunc + 44
2   CoreFoundation                  0x34f3a96e __CFStringAppendFormatCore + 7998
3   CoreFoundation                  0x34eb51d8 _CFStringCreateWithFormatAndArgumentsAux + 68
4   Foundation                      0x33707c2e +[NSString stringWithFormat:] + 54
5   MyGreatApp                      0x00061028 -[DataAccessor getProducts:div:productType:cat:searchsilver:completion:] (DataAccessor.m:301)
6   MyGreatApp                      0x00017196 __36-[products showNationalCategories]_block_invoke_0 (products.m:1688)
7   libdispatch.dylib               0x37886c52 _dispatch_call_block_and_release + 6
8   libdispatch.dylib               0x378927b4 _dispatch_worker_thread2 + 256
9   libsystem_c.dylib               0x35b45df4 _pthread_wqthread + 288
10  libsystem_c.dylib               0x35b45cc8 start_wqthread + 0

これが 301 行目です (文字列に入るすべてのオブジェクトは NSStrings であることに注意してください):

NSString *urlStr = [NSString stringWithFormat:@"%@?api_key=%@&device[duid]=%@&division=%@",apiUrl,apiKey, duid, division];
4

2 に答える 2

0

期待していたものとは異なるView Controllerが表示されているときに、コールバックが実行されていると思います。別々のコード行で NSLogging することにより、障害のある文字列ポインターを解決するのが最初の最善策だと思います。また、これらの文字列パラメーターに _block 装飾を使用した (または、ブロックの内側と外側の両方で 2 回使用した) 場合、それらの保持が壊れます。

于 2014-04-16T16:28:41.360 に答える
0

私のワイルドな推測では、viewDidUnload で何かが割り当て解除されており、これに依存しており、適切に再初期化されていません。ほとんどの場合、テスト中に viewDidUnload が呼び出されることはありません。これは、他のアプリを使用していないときに発生する可能性があると私が考えることができる 1 つのことです。ビューが画面に表示されたときに使用されるすべての A のプロパティを再確認し、それらが非 nil であることを再確認します。

于 2012-06-20T21:49:54.880 に答える