1
블록 개체 내에 UIAlertView를 표시하려고하면 EXEC_BAD_ACCESS가 표시됩니다. "viewDidAppear"메서드에서 "onEventAdded"메서드를 호출하면 경고가 예상대로 작동합니다.UIAlertView exec_bad_access 양식 블록 개체
미리 감사드립니다.
- (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];
}
그건 속임수 였어. [self performSelectorOnMainThread : @selector (onEventAdded) withObject : nil waitUntilDone : NO]를 추가했습니다. 블록 객체의 끝에서 작동합니다. 감사 – Rico