これは私が今まで遭遇した中で最も奇妙/最も厄介なバグです! NSMutableArray selectedObjects を持つモーダル テーブルビューがあります。selectedObjects を使用して、データソースの NSStrings を containsObject と比較して、行を強調表示する必要があるかどうかを確認します。
わかりました、ここが奇妙な部分です!私の selectedObjects は、Core Data sqlite データベースの文字列から派生しています。selectedObjects の各 NSString が =< 4 文字の場合、exc_bad_access が取得されません。ただし、selectedObjects の 1 つに 4 文字を超える文字列がある場合、モーダル テーブルビューが表示されると、exc_bad_access! が発生します。
奇妙なことは、selectedObjects 配列を手動で割り当てると (つまり [NSMutableArray arrayWithObjects:@"selected 1", @"selected 2", nil]; )、exc_bad_access が得られないことです。[NSMutableArray arrayWithObject:[NSString stringWithFormat:@"%@", @"selected 1"]; を実行することもできます。
Core Data オブジェクト グラフの selectedObject 文字列にすべて依存しているようです。たとえば、xcdatamodel で選択した文字列のデフォルトを 4 文字に設定した場合、exc_bad_access (@"asdf" など) は取得されませんが、@"asdfg" として設定すると、エラー。なぜ違いが生じるのか、私は本当に混乱しています!
同様のバグに遭遇した/聞いたことがある人はいますか?
手伝ってくれてどうもありがとう!