3

からの読み取り中に、理由もなくクラッシュしましたNSUserDefaults。初めて読んだときは良かったです。私はデータを取得し、それは大丈夫です。2 回目は、クラッシュしたり、値が空になったりします。

私がすでにチェックしたこと:

  • いいえ、どこかで消していません。
  • いいえ、同時に呼び出している人はいません。
  • もしゼロなら?それはゼロであってはならず、私がそれを消去する場所はありません.1回目(データがあります)と2回目(クラッシュ)の間、誰もそれに触れていません.
  • の保存NSMutableArrayNSData最初の呼び出しで動作するのでおそらく良いでしょう。

どうなり得るか?

return [[NSUserDefaults standardUserDefaults]objectForKey:@"tempImagesArray"];

最初にアプリを起動したときに保存するため、コードを保存することさえしませんでした.2回目は何も保存しません。(2 番目の呼び出しではなく、最初の呼び出しに存在します)

編集:::クラッシュ時に表示されるアセンブラー:

0x19f8e2c:  movl   %eax, (%esp)
0x19f8e2f:  calll  0x1bcdfee                 ; symbol stub for: objc_msgSend
0x19f8e34:  jmp    0x19f8e38                 ; -[NSUserDefaults(NSUserDefaults) objectForKey:] + 74
0x19f8e36:  xorl   %eax, %eax
0x19f8e38:  addl   $20, %esp
4

1 に答える 1