1

ブロック オブジェクト内で UIAlertView を表示しようとすると、EXEC_BAD_ACCESS が発生します。「viewDidAppear」メソッドから「onEventAdded」メソッドを呼び出すと、アラートは期待どおりに機能します。

前もって感謝します。

- (void) addEvent:(NSDictionary *) event_data
{
   NSLog(@"event_data: %@ ",event_data);    
   // create event
   EKEventStore *store = [[EKEventStore alloc] init];

   [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {

        // event code ...

        NSError *err;
        [store saveEvent:event span:EKSpanThisEvent error:&err];
        if(err == NULL)
        {
            [self onEventAdded];
        }
    }];
}

-(void) onEventAdded{
   uiAlert = [[UIAlertView alloc]initWithTitle: nil
                                               message: @"Event added to calendar."
                                              delegate: nil
                                     cancelButtonTitle:nil
                                     otherButtonTitles:@"OK",nil];
   [uiAlert show];
}
4

1 に答える 1

0

完了ブロックはおそらくメイン スレッドでは実行されません。メイン スレッドでのみ UI 操作 (アラートの表示など) を実行できます。

于 2012-11-20T00:36:00.567 に答える