UIAlertView
メイン スレッドに が表示されるという問題があります。理由はわかりませんが、メインスレッドで実行しているにもかかわらず、クラッシュし続けます。次のブロックはバックグラウンド スレッドにありますが、以下のようにメインにアラートがあります。
void (^removeFromCalendar)(NSString *, NSString *, EKEventStore *) = ^(NSString *error, NSString *eventKey, EKEventStore *eventDB) {
EKEvent *myEvent = [eventDB eventWithIdentifier:eventKey];
NSError *err = noErr;
if(myEvent != NULL && myEvent != (id)[NSNull null]) {
[eventDB removeEvent:myEvent span:EKSpanThisEvent error:&err];
} else {
// Event was not found, nothing to do
return;
}
[eventDB release];
if (!err || err == noErr) {
NSLog(@"Deleted event %@", myEvent.title);
// Show alert on the main thread
dispatch_async(dispatch_get_main_queue(), ^{
// Showing the alert for unattending
NSString *resultString = @"This event was removed from your calendar.";
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Info" message:resultString delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil] autorelease];
[alert show];
});
return;
}
error = err.description;
};
アラートが表示されている下部をコメントアウトすると、すべて問題ありません。しかし、アラートについては、EXC_BAD_ACCESS
エラーが発生し続けます。誰かが理由を説明できますか?それは正しいスレッドにあり、メモリの問題がどこから発生する可能性があるかを一生理解できません!