0

次のクラスを呼び出そうとしているときに奇妙な問題に直面している私のアプリは、IOS5 と IOS7 でアプリをテストしたときにのみ、 IOS6でクラッシュしました。クラッシュのスクリーン ショット

ここに画像の説明を入力

この問題をグーグルで検索したところ、次の 解決策が得られましたが、1 つだけでは問題を解決できませんでした。

これがクラッシュしている私のコードです

-(IBAction)notesMethod{
NotesClass *notes = [[NotesClass alloc] initWithNibName:@"NotesClass" bundle:nil];

[self presentViewController:notes animated:YES completion:nil];
}


- (void)viewDidLoad
{

NSArray *arrTemp1 = [[NSArray alloc]initWithObjects:@"Single Event Probability", @"Mutiple Event Probability",@"Permutation", @"Combination",nil];

NSArray *arrTemp2 = [[NSArray alloc]initWithObjects:@"Bionomial Distribution",@"Negativ Bionomial Distribution",@"Hypergeometric Distribution",@"Comulative Hypergeometric Distribution",@"Poission Distribution",@"Multinomial Distribution",nil];

NSArray *arrTemp3 = [[NSArray alloc]initWithObjects:@"Uinform Distribution",@"Exponential Distribution",@"Gamma Distribution",@"Gamma Function", @"Beta Distribution", @"Beta Function", @"Standard Normal Distribution",@"PDF of Normal Distribution", @"Z-Table", nil];

NSDictionary *temp =[[NSDictionary alloc]initWithObjectsAndKeys:arrTemp2,@"Discreet Probability Distribution",arrTemp3,@"Continuouse Probability Distribution",arrTemp1,@"Probability",nil];
 }

次のビューを表示する前に、アプリがクラッシュしました。Thread 1: signal SIGABRTについて読んだとき、xib の問題に関するすべての問題について、私の xib ファイルに問題はないと確信しています。

クラッシュ出力

StatisticCal[3091:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSDictionary initWithObjects:forKeys:]: count of objects (0) differs from count of keys (3)'
 *** First throw call stack:

(0x1886012 0x1439e7e 0x1891737 0xe456d6 0xe6af79 0xe6c507 0xe43c85 0xe6af79 0xe69e97 0xeb67c1 0xf688d3 0xe6af79 0xe69e97 0x4b78c4 0xe6af79 0xe69e97 0x59d648 0xe6af79 0xe6c507 0xe43c85 0xe6af79 0xe69e97 0x59caa3 0x461e37 0x462418 0x462648 0x462882 0x46e235 0x66d3d2 0x46b4f3 0x46b777 0x184cb 0x144d705 0x384920 0x5c0b24 0x144d705 0x384920 0x3848b8 0x445671 0x445bcf 0x444d38 0x3b433f 0x3b4552 0x3923aa 0x383cf8 0x16d0df9 0x16d0ad0 0x17fbbf5 0x17fb962 libc++abi.dylib: 例外をスローして呼び出された終了

どんな提案でも大歓迎です.thanks

4

1 に答える 1

1

エラーメッセージ:

StatisticCal[3091:c07] ** キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '** -[NSDictionary initWithObjects:forKeys:]:オブジェクトの数 (0) がキーの数 (3) と異なります'

ディクショナリを作成するときのオブジェクトとキーの数は同じではありません。これは、エラーを見つけるのに役立ちます。

これは、リリースされたオブジェクトにアクセスしているメモリの問題でもある可能性があります。解放されたオブジェクトはすぐには上書きされず、再利用が発生するタイミングはランダムになる可能性があるため、機能する場合と機能しない場合がある理由が説明されます。

例外ブレークポイントを追加し、ヒットしたときに引き続き詳細情報を取得します。ブレークポイントを追加するには、ナビゲータでブレークポイントを選択し、Xcode ウィンドウの左下にある [+] をクリックして、[例外ブレークポイントを追加] を選択します。

余談ですが、データをフォーマットする良い方法は次のとおりです(ここで再生するだけです):

NSArray *arrTemp1 = @[@"Single Event Probability",
                      @"Mutiple Event Probability",
                      @"Permutation",
                      @"Combination"];

NSArray *arrTemp2 = @[@"Bionomial Distribution",
                      @"Negativ Bionomial Distribution",
                      @"Hypergeometric Distribution",
                      @"Comulative Hypergeometric Distribution",
                      @"Poission Distribution",
                      @"Multinomial Distribution"];

NSArray *arrTemp3 = @[@"Uinform Distribution",
                      @"Exponential Distribution",
                      @"Gamma Distribution",
                      @"Gamma Function",
                      @"Beta Distribution",
                      @"Beta Function",
                      @"Standard Normal Distribution",
                      @"PDF of Normal Distribution",
                      @"Z-Table"];

NSDictionary *temp = @{@"Probability"                          : arrTemp1,
                       @"Discreet Probability Distribution"    : arrTemp2,
                       @"Continuouse Probability Distribution" : arrTemp3};
于 2013-11-09T22:05:02.090 に答える