でデフォルトを打った後、私はこの単純なswitch文があります。値はデフォルトのケースに当たるEXC BADアクセスswitch文
switch ([sender tag]) {
case 0:
[NVAlertView showNVAlertViewFromView:self.view
title:@"STOCK NUMBER"
description:@"XXXXXXXXXXX"
cancelTitle:@"Cancel"
otherTitle:@"DONE"
dismissBlock:^(BOOL canceled, NSString *description) {
if (!canceled) {
[newItem setObject:description forKey:@"stocknum"];
}
}];
NSLog(@"YOP!");
break;
case kDescription:
[NVAlertView showNVAlertViewFromView:self.view
title:@"DESCRIPTION"
description:@"Enter a description here."
cancelTitle:@"Cancel"
otherTitle:@"DONE"
dismissBlock:^(BOOL canceled, NSString *description) {
if (!canceled) {
[newItem setObject:description forKey:@"description"];
}
}];
break;
case kBrandName:
[NVAlertView showNVAlertViewFromView:self.view
title:@"BRAND NAME"
description:@"Enter a brand name here."
cancelTitle:@"Cancel"
otherTitle:@"DONE"
dismissBlock:^(BOOL canceled, NSString *description) {
if (!canceled) {
[newItem setObject:description forKey:@"description"];
}
}];
break;
case kPrice:
[NVAlertView showNVAlertViewFromView:self.view
title:@"PRICE"
description:@"$199.99"
cancelTitle:@"Cancel"
otherTitle:@"DONE"
dismissBlock:^(BOOL canceled, NSString *description) {
if (!canceled) {
[newItem setObject:description forKey:@"description"];
}
}];
break;
default:
NSLog(@"default");
break;
}
毎回、それが「デフォルト」と理由EXC BADアクセスのプログラムがクラッシュを出力します。これは何の原因ですか? ありがとう!
switch文の後に続くコードはありますか?説明から、問題がスイッチの後に続くかのように聞こえます。 –
switch文の後には何もありません。関数は終了します。スイッチがそこにある唯一のステートメントです – 0xSina
EXEC BAD ACCESSは、しばしば早すぎるリリース/ダングリングポインターです。スニペットの範囲には何もないので、このメソッドの前後にエラーが導入されている可能性があります。スイッチの終了は実行サイクルの最後のコードになる可能性があります。そのため、デフォルトのケースの直後にエラーが表示されるのはその原因ではありません。 – isaac