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) недействительный порт назначения) "
Кто-нибудь знает, что это такое и почему я его получаю. благодаря
Реза
- Свойство EKReminder для хранения контактного телефона
- Удаление события с помощью набора событий в iPhone
- Откройте «Сведения о мероприятии» в приложении календаря с определенным идентификатором события
- saveEvent return «Календарь не установлен»
- iOS EKEvent Store, воссоздающий календари iCloud в цикле, не будет сохранять локальные.
- Как установить напоминание (тревогу) с использованием рамки eventKit для конкретной даты
- как настроить цвет EKEventEditView, отображаемый EKEventView?
- Как отслеживать события, добавленные моим приложением в календаре iphone
Я нашел проблему.
Я загрузил и сохранил EKEventStore ранее в своем коде. Удаление одного из них решило проблему
Реза
У меня такой же журнал предупреждений на консоли
Предыдущий код:
"CalendarEventHandler.m" eventStore = [[EKEventStore alloc] init]; "CalendarEventHandler.h" @property (nonatomic,strong) EKEventStore *eventStore;
Изменен код
self.eventStore = [[EKEventStore alloc] init];//This helped me to remove warning
@discussion в EKEventStore
класс EKEventsStore.h
файл говорит:
"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]
.
Этот подход также фиксирует предупреждение.
Сделайте экземпляр «eventDB» переменной класса или свойство может решить проблему.