4

特定の Storyboard シーンを開くと、「解放されたオブジェクトのチェックサムが正しくありません - オブジェクトは解放後に変更された可能性があります」というエラーでアプリがクラッシュします。また、いくつかの「EXC_BAD_ACCESS」クラッシュが発生しています。通常はどちらかです。問題のあるポインターが見つからなかったので、 でテストしましたNSZombieEnabled。そのため、クラッシュ時に次のメッセージが表示されました。 *** -[NSContentSizeLayoutConstraint secondItem]: message sent to deallocated instance 0x1e0a5220

今、私はプロジェクトを検索し[NSContentSizeLayoutConstraint secondItem]、 、さらには 個別に検索NSContentSizeLayoutConstraintしました。secondItemプロジェクトのどこにも存在しません。私はまだ Objective-C に非常に慣れていないため、次に何をすべきかわかりません。また、デバイスとシミュレーターで 5 回に 1 回は問題なく動作します。これ -[NSAttributeDictionary release]:は、私のプロジェクトのどこにもありません。また、*** -[PitchDetector addSamples:inNumberFrames:]:. それらは変化し続けており、プロジェクトのどこにも見つかりません。また、通常はシミュレーターで正常に実行されることもありますが、クラッシュするとデバイスでエラーが変化し続けるため、非常にイライラします。

ストーリーボードでビューを切り替えるために、このコードを使用しています。これは、メイン画面の viewDidLoad にあります。 x1ViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"x1ViewController"];

ボタンを押してロードすると、次のようになります。 - (IBAction)button4:(id)sender { [self presentViewController:x1ViewController animated:YES completion:nil]; }

他のすべてのページ遷移をまったく同じ方法で設定したところ、すべて問題なく切り替わりました。唯一困ったのがこれ。

スタック トレースは次のとおりです。 ここに画像の説明を入力

そして、これは、修正方法がわからない分析中に見つけた奇妙なことです。 ここに画像の説明を入力

更新:ページが読み込まれると、コンソールに「エラー: 1768843636」というメッセージが表示されることもあります。非常に奇妙な。

4

1 に答える 1

2

ストーリーボードでビューを切り替えるために、このコードを使用しています。これはviewDidLoadメイン画面にあります:

x1ViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] 
                        instantiateViewControllerWithIdentifier:@"x1ViewController"];

さて、あなたの問題があります。viewDidLoad早すぎる。あなたはまだインターフェースに入っていませんが、すでにインターフェースの次の状態に移行しようとしています。さらに、同じView Controllerインスタンスを異なる機会に提示しようとするリスクがあります。

そのコードをボタンを押すコードに移動します。このView Controllerを提示する瞬間が来るまでインスタンス化する必要はありません。プレゼンテーションを行うたびに、新しい View Controller インスタンスを使用します。

于 2014-01-31T19:04:53.530 に答える