Ios EKCalendar and Error Domain=NSMachErrorDomain代码=268435459

Ios EKCalendar and Error Domain=NSMachErrorDomain代码=268435459,ios,calendar,ekeventkit,Ios,Calendar,Ekeventkit,我正在探索EKEventKit。 我连接iPhone并打电话安装日历 EKEventStore *eventDB = [[EKEventStore alloc] init]; NSArray * calendars = [eventDB calendars ]; 但是,当我记录日历时,会收到此错误消息 “CADObjectGetIntProperty失败,出现错误 Domain=NSMachErrorDomain Code=268435459“无法执行该操作 完整的。(马赫错误26843545

我正在探索EKEventKit。 我连接iPhone并打电话安装日历

EKEventStore *eventDB = [[EKEventStore alloc] init];
NSArray * calendars = [eventDB calendars ];
但是,当我记录日历时,会收到此错误消息

“CADObjectGetIntProperty失败,出现错误 Domain=NSMachErrorDomain Code=268435459“无法执行该操作 完整的。(马赫错误268435459-(ipc/发送)目标无效 港口“

有人知道这是什么,为什么我会得到它吗。 谢谢

雷扎

我发现了这个问题

我以前在代码中加载并保留了EKEventStore。删除其中一个解决了这个问题


Reza

我在控制台上收到了相同的警告日志

早期代码:

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


"CalendarEventHandler.h"

@property (nonatomic,strong) EKEventStore *eventStore;
代码已修改

self.eventStore = [[EKEventStore alloc] init];//This helped me to remove warning

@对
EKEventStore
class
EKEventsStore.h
文件的讨论说明:

“通常最好保留事件存储的长期实例,最有可能是应用程序中的单例实例。”

这里也写了同样的内容:
连接到事件存储
部分:

“EKEventStore对象需要相对较长的时间来初始化和释放。因此,您不应该为每个与事件相关的任务初始化和释放单独的事件存储。相反,在应用程序加载时初始化单个事件存储,并重复使用它以确保您的连接是长期的。”

因此,正确的方法是:

@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”设置为类成员变量或属性可以解决此问题。

我遇到了相同的问题,我认为它有相同的根本原因,我尝试了[store release];没用,你实际上是如何修复的?我在我的项目中使用自动引用计数。启动时,我创建了一个EKEventStore,并将其分配给一个变量,因此它被保留,然后我在所有日历调用中使用该EventStore。是的,这就是我最终采用的方法。谢谢。谢谢,这只是一个iOS5错误,现在已修复。谢谢ouApple在本文中提到这是一个已知的bug-