EKCalendar и домен ошибки = NSMachErrorDomain Code = 268435459

Я изучаю EKEventKit. Я подключаю свой iPhone и звоню, чтобы установить календари

EKEventStore *eventDB = [[EKEventStore alloc] init];
NSArray * calendars = [eventDB calendars ];

Однако, когда я регистрирую календари, я получаю это сообщение об ошибке

«Сбой CADObjectGetIntProperty с ошибкой Error Domain = NSMachErrorDomain Code = 268435459 «Операция не может быть завершена. (Ошибка Mach 268435459 - (ipc/send) недопустимый порт назначения)"

Кто-нибудь знает, что это такое и почему я получаю это. Спасибо

Реза


person reza23    schedule 10.07.2012    source источник
comment
Apple упомянула об этом как о известной ошибке в этом -developer.apple. .com/library/ios/samplecode/SimpleEKDemo/   -  person Vipin Johney    schedule 17.02.2015


Ответы (4)


Я нашел проблему.

Я загрузил и сохранил EKEventStore ранее в своем коде. Удаление одного из них решило проблему

Реза

person reza23    schedule 10.07.2012
comment
У меня та же проблема, и я думаю, что у нее та же основная причина, я пробовал [релиз магазина]; безрезультатно, как ты это исправил? - person Sparq; 10.07.2012
comment
Я использую автоматический подсчет ссылок в своем проекте. При запуске я создаю EKEventStore, который присваиваю переменной, поэтому он сохраняется, а затем я использую этот EventStore для всех своих вызовов календаря. - person reza23; 11.07.2012
comment
Да, именно такой подход я выбрал. Спасибо. - person Sparq; 11.07.2012
comment
Спасибо, это была только ошибка iOS5, и теперь она исправлена. Спасибо - person Laszlo; 17.12.2013

У меня такой же журнал предупреждений на моей консоли

Предыдущий код:

"CalendarEventHandler.m"
eventStore = [[EKEventStore alloc] init];


"CalendarEventHandler.h"

@property (nonatomic,strong) EKEventStore *eventStore;

Код изменен

self.eventStore = [[EKEventStore alloc] init];//This helped me to remove warning
person Alphonse R. Dsouza    schedule 07.03.2013

@discussion to EKEventStore class EKEventsStore.h file говорит:

"It is generally best to hold onto a long-lived instance of an event store, most likely as a singleton instance in your application."

То же самое написано здесь: Чтение и запись событий календаря, в разделе Connecting to the Event Store:

"An EKEventStore object requires a relatively large amount of time to initialize and release. Consequently, you should not initialize and release a separate event store for each event-related task. Instead, initialize a single event store when your app loads, and use it repeatedly to ensure that your connection is long-lived."

Итак, правильный способ сделать это:

@interface MyEventStore : EKEventStore

+ (MyEventStore *)sharedStore;

@end

+ (MyEventStore *)sharedStore
{
    static dispatch_once_t onceToken;
    static MyEventStore *shared = nil;
    dispatch_once(&onceToken, ^{
        shared = [[MyEventStore alloc] init];
    });
    return shared;
}

@end

и используйте его, вызывая [MyEventStore sharedStore].

Этот подход также исправляет предупреждение.

person Anastasia    schedule 06.03.2014

Сделать экземпляр «eventDB» переменной или свойством класса может решить проблему.

person frank    schedule 19.06.2015