EKEventEditViewController打开速度非常慢

Ste*_*hen 1 objective-c ios ekevent

我正在使用它EKEventEditViewController来允许从我的应用程序添加事件到iPhone日历.这是我目前使用的代码:

    [self.store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
        if (!granted) { return; }
        EKEvent *storedEvent = [EKEvent eventWithEventStore:self.store];
        storedEvent.title = self.selectedEvent.title;
        storedEvent.startDate = self.selectedEvent.date;
        storedEvent.endDate = [NSDate dateWithTimeInterval:60*60 sinceDate:self.selectedEvent.date];
        storedEvent.notes = self.selectedEvent.comments;
        [storedEvent setCalendar:[self.store defaultCalendarForNewEvents]];
        self.eventController.event = storedEvent;
        self.eventController.eventStore = self.store;
        self.eventController.editViewDelegate = self;
        [self presentViewController:self.eventController animated:YES completion:nil];
    }];
Run Code Online (Sandbox Code Playgroud)

虽然我预先设置了视图控制器和视图控制器,但此代码需要花费10秒钟来生成必要的视图事件EventStore.有没有办法让这个更快,或者我只需要设置一个微调器并告诉用户等待?

Fel*_*lix 6

将在任意队列上调用完成处理程序.在完成块内部调度主线程上与UIKit相关的东西:

[[NSOperationQueue mainQueue] addOperationWithBlock:^{
    self.eventController.event = storedEvent;
    self.eventController.eventStore = self.store;
    self.eventController.editViewDelegate = self;
    [self presentViewController:self.eventController animated:YES completion:nil];
}];
Run Code Online (Sandbox Code Playgroud)